Extension talk:TalkRight

Nifty. I just installed this and it appears to work. What more can you ask for? :) --pfctdayelise 11:46, 1 August 2006 (UTC)

Bug: the extension uses the userCan hook, but returns always false (more accurately, doesn't return anything). this causes further processing to stop, thus preventing other extensions from working. it should return false when user is not allowed and true otherwise Ittayd 10:30, 11 January 2007 (UTC)


 * Patched. Now should work. Platonides 13:10, 20 March 2007 (UTC)

Large bug: this extension makes it impossible to protect talk pages. If a user has the  right, then   will say that they can edit talk pages, whether they're protected or not. The  hook should only ever set   to  ... setting it to   will break things like page protection, setting it to   can break other extensions that have   hooks by clobbering their results... it should set it to   if we want to restrict access, and leave it unchanged if we want to allow it, or don't care. I've taken the liberty of fixing this, since it smells like a security hole... Phlip 11:07, 26 March 2007 (UTC)

I think the closing ?> has been missed. 87.218.103.201 14:11, 23 September 2007 (UTC)


 * No...see 23531. It's a feature, not a bug. -- Sayuri 14:53, 23 September 2007 (UTC)


 * Thank you! I've just found the omission extrange. 193.41.227.170 10:57, 24 September 2007 (UTC)

Mediawiki 1.9.0 tweaks
Hi there, I found I had to change a couple of things to make this work in MediaWiki 1.9.0. require_once("./extensions/talkright.php"); instead of include_once("extensions/talkright.php");
 * 1) In alternateEdit replace  "mRights" with  "getRights"
 * 2) In LocalSettings.php use

Does anyone have examples of what Extension:Talkright looks like when implemented?
I already have a few wikis setup where the global default in LocalSettings.php is that articles are only editable by admins, and therefor all talk pages are open for anyone else. That way we can publish our agency's "rules" and keep them sacrosanct on article pages, but allow discussions about them in the discussion/talk page behind each article (http://en.citizendium.org/ uses "draft" sub-pages to accomplish this goal). The goal is to consider those discussions when next updating the rules / articles pages. Thanks! -- Peter Blaise peterblaise 14:26, 17 July 2007 (UTC)

Edit tab in talk page
Hi, I found that after enabling this extension there was only a "view source" button on existing discussions. To fix this problem, modify includes/SkinTemplate.php on line 672 changing

if ( $this->mTitle->quickUserCan( 'edit' ) && ( $this->mTitle->exists || $this->mTitle->quickUserCan( 'create' ) ) ) {

to

if ( ($this->mTitle->quickUserCan( 'edit' ) || ($this->mTitle->isTalkPage && $wgUser->isAllowed('talk'))) && ( $this->mTitle->exists || $this->mTitle->quickUserCan( 'create' ) ) ) {

--Mwlazlo 04:59, 1 April 2008 (UTC)

Mediawiki 1.12
Doesn't work with mediawiki 1.12 for me. And i don't think i can point out the problem myself. Anybody some ideas how to fix this? --Wupme 15:14, 21 April 2008 (UTC)

media wiki 1.14
Couldn't get this to work after upgrading from 1.13.3 to 1.14.

did get edit_talk rights to work using the other extension..

anyone else have problems with this as 1.14?

Edit tab in 1.16
If you use Vector skin, you have also change Skins/Vector.php in line 117 to "( $this->mTitle->quickUserCan( 'edit' ) ||  ($this->mTitle->isTalkPage && $wgUser->isAllowed('talk')) )"

Adjustment to talkright.php to fix error To get this extension to work in 1.16, I had to change the parameter passed to alternateEdit from reference to value. That is, remove the '&' in front of the parameter.

Cannot Edit in 1.16 with PHP 5.3.8
change line 59, by removeing '&'

from

function alternateEdit(&$editPage) {

to

function alternateEdit($editPage) {

MW 1.20
Has anyone made this work with MW 1.20? I've just upgraded to 1.20, and users with the talk permission can edit discussion pages as well as initiate them, and cannot edit articles. So all that is working properly. However, there are three issues I see:


 * 1) When someone with talk-right starts a new discussion page, they do have the "add topic" button in the top right. After the discussion page is created, however, the "add topic" button is no longer shown.
 * 2) Discussion pages do not show "edit section" links
 * 3) Special:Version is all messed up (contents of the header and sidebar are displayed over the body of the page)

Any suggestions on how to fix this? Thanks!

--Jamesmontalvo3 (talk) 21:30, 2 May 2013 (UTC)


 * Update 1: I fixed the issue with Special:Version by changing the author from "P.Levêque" to "P.Leveque". I have no idea why that would matter, since plenty of my other extensions have authors with accented characters.


 * --Jamesmontalvo3 (talk) 14:55, 3 May 2013 (UTC)


 * Update 2: So evidently on our pre-upgrade load (MediaWiki 1.17) people with only the "talk" right also did not see the section edit links or the "add topic" link. Looking through the code I couldn't figure out where those features were added in. Apparently the answer is: they're not! Anyone know how to add them in?


 * --Jamesmontalvo3 (talk) 15:17, 3 May 2013 (UTC)


 * Update 3: Thanks to User:2nd-player for updating the code for MW 1.19+ and making the "Add Topic" link work. Now all that is required is to add edit-section links. I've been trying to figure out why it's not working. In Article.php at line 567 it uses Title::quickUserCan to check to see if the edit section links should be displayed. I thought since quickUserCan is less exhaustive in checking permissions than userCan, changing to userCan in Article.php would temporarily solve the problem. It did not.


 * Next I commented out  from TalkRight.php and saw no effect. Users without edit-rights but with talk-rights could still edit. So I realized userCanTalk isn't actually doing anything.


 * explicitly sets User->mRights, whereas TalkRight::userCanTalk seems to be attempting to indirectly influence the Title::userCan method (I don't understand the table at the bottom of Manual:Hooks/userCan so I'm not really sure). It seems to me that doing the same thing as alternateEdit (explicitly setting User->mRights) prior to page parsing should do the trick. To test it out I chose the hook . This is probably not the best hook to use, and I chose it pretty arbitrarily because I don't know enough about the MediaWiki architecture. It just sounded like it was early enough in the page generation cycle. Manual:Hooks/ParserBeforeStrip says that this is not called on cached content, so that could pose a problem.


 * My code is below, and note that I removed  and   hooks and related TalkRight methods. As mentioned,   didn't appear to do anything.   wasn't necessary anymore once the   hook was used.


 * --Jamesmontalvo3 (talk) 19:17, 6 May 2013 (UTC)

Mediawiki 1.3 Moving Pages
I'm trying to create a group that can comment on the talk pages but not edit: $wgGroupPermissions['talkers']['edit'] = false; $wgGroupPermissions['talkers']['talk'] = true;

but it seems that the 'talkers' group can still move a page! I tried adding: $wgGroupPermissions['talkers']['move'] = false;

but it still seems to be there. Anyone have a fix?

Mediawiki 1.29.2
This seems to only produce a fatal 500 error in MW version 1.29. Has anyone found a way to make it work? The extension results in unexpected variables in the localsettings.php

Solution
This can be fixed by changing following line in TalkRight.class.php static function giveEditRightsWhenViewingTalkPages ( &$parser, &$test, &$test ) { to static function giveEditRightsWhenViewingTalkPages ( &$parser ) { Those parameters are unused and generate an error because of the duplication. Tested with Mediawiki 1.31.0 and PHP 7.0.31

--178.83.48.145 12:44, 17 September 2018 (UTC)

Make Anon users able to only edit/create talk pages?
There seems to be a problem for anon users with this extension. I am trying to make anon users able to use discussion pages, but not edit the articles on my site. Using this extension was a last resort after trying all other suggestions, so i am hoping someone might know a way to do that?