Extension:Talkright/ja

Talkright 拡張機能は トークページの編集操作を記事の編集と区別し、 権限を追加します.

使用法
私用ウィキにおいて、利用者はページを閲覧できますが、記事の編集は許可されません. これは以下のように設定します:

ここで特定の利用者グループに所属する人に、トークページの編集のみを許可する権限を与えて、コメントを募集したいときは、この Talkright 拡張機能を導入して talk 権限を与える必要があります. 例えば、以下の2行のように:

ソースコード
テスト済みのバージョン: MW 1.20.2 - スキン: ベクター、モノブック permission independent from article edition', 'url' => 'https://www.mediawiki.org/wiki/Extension:Talkright', ); $wgHooks['AlternateEdit'][] = 'TalkRight::alternateEdit'; $wgHooks['ParserBeforeStrip'][] = 'TalkRight::giveEditRightsWhenViewingTalkPages';
 * MediaWiki 1.19.x および 1.20.x 用
 * 1) フックの登録

$wgAvailableRights[] = 'talk'; class TalkRight {
 * 1) Global 'talk' right

/**    * Bypass edit restriction when EDITING pages if user has 'talk' right and page is a talk (discussion) page. * @param $&editPage the page edition object * @return true to resume edition to normal operation */   static function alternateEdit( $editPage ) { global $wgOut, $wgUser, $wgRequest, $wgTitle; if ( $wgTitle->isTalkPage && $wgUser->isAllowed( 'talk' ) ) { array_push( $wgUser->mRights, 'edit' ); }       return true; }

/**    * Bypass edit restriction when VIEWING pages if user has 'talk' right and page is a talk (discussion) page. * This is probably not the ideal hook to use. I just needed one earlier than creation of section links, edit tab and add topic tab * @param &$parser parser object, used to gain access to User and Title objects * @param &$text unused * @param &$strip_state unused * @return true and false both seemed to work. Manual:Hooks/ParserBeforeStrip doesn't indicate what return value affects */       static function giveEditRightsWhenViewingTalkPages ( &$parser, &$test, &$test ) { $user = $parser->getUser; if ( $parser->getTitle->isTalkPage && $user->isAllowed( 'talk' ) ) { array_push( $user->mRights, 'edit' ); }       return true; } }