Open main menu
MediaWiki 拡張機能マニュアル
OOjs UI icon advanced.svg
Talkright
リリースの状態: 安定
実装 User rights
説明 トークページの編集と記事の編集を区別する。
作者 P Leveque, Marc Noirot, James Montalvo
最新バージョン 1.4.1 (2013-05-06)
MediaWiki 1.19 以降
データベースの変更 いいえ
ライセンス GPL v2+
ダウンロード 下記参照
追加する権限
talk
使用するフック
AlternateEdit
ParserBeforeStrip
translatewiki.net で翻訳を利用できる場合は、Talkright 拡張機能の翻訳にご協力ください
使用状況とバージョン マトリクスを確認してください。

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

Contents

使用法Edit

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

$wgGroupPermissions['user']['read'] = true;
$wgGroupPermissions['user']['edit'] = false;

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

$wgGroupPermissions['commentators']['edit'] = false;
$wgGroupPermissions['commentators']['talk'] = true;

インストールEdit

  • Obtain the codeして、ファイルを extensions/ フォルダー内の Talkright という名前のディレクトリ内に配置します。
  • 以下のコードを LocalSettings.php の末尾に追加します:
    require_once "$IP/extensions/Talkright/Talkright.php";
    
  •   完了 – ウィキの「Special:Version」に移動して、拡張機能が正しくインストールされたことを確認します。

ソースコードEdit

MediaWiki 1.19.x および 1.20.x 用

テスト済みのバージョン: MW 1.20.2 - スキン: ベクター、モノブック

<?php
/**
 * Talkright MediaWiki extension
 * @author Marc Noirot - marc dot noirot at gmail
 * @author P.Levêque - User:Phillev
 * @author James Montalvo - User:Jamesmontalvo3
 *
 * This extension makes the editing of talk pages a distinct action from
 * the editing of articles, to create finer permissions by adding the 'talk' right.
 *
*/
 
if ( !defined( 'MEDIAWIKI' ) ) {
        die( 'This file is an extension to MediaWiki and thus not a valid entry point.' );
}
 
$wgExtensionCredits['other'][] = array(
    'name' => 'TalkRight',
    'version' => '1.4.1',
    'author' => array('P.Lev&ecirc;que', 'Marc Noirot', 'James Montalvo'),
    'description' => 'Adds a <code>talk</code> permission independent from article edition',
    'url' => 'https://www.mediawiki.org/wiki/Extension:Talkright',
);
 
# フックの登録
$wgHooks['AlternateEdit'][] = 'TalkRight::alternateEdit';
$wgHooks['ParserBeforeStrip'][] = 'TalkRight::giveEditRightsWhenViewingTalkPages';

# Global 'talk' right
$wgAvailableRights[] = 'talk';
 
class TalkRight {

    /**
     * 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;
    }
    
}

変更履歴Edit

日付 バージョン 備考
2013年05月06日 1.4.1 MediaWiki1.19に対応。話題追加、節編集リンクを有効に。
2011年11月24日 1.3 「ソースを表示」ラベルを編集するための 'includes/SkinTemplate.php' の変更を不要に
2008年08月05日 1.1 MediaWiki のバージョン 1.12, 1.13 用のクレジット追加
2006年06月20日 1.0.1 拡張機能のクレジットとバージョン情報の追加
2006年06月07日 1.0 最初のリリース
English  • 日本語