Extension:TitleBlacklist/ja

Title Blacklist拡張機能によってwiki管理者は正規表現に一つかそれ以上マッチするタイトルを持つページの作成、移動とアップロードをブロックできるようになります.

要件
拡張機能はMediaWiki 1.12.0かそれ以降を要求します(AbortMoveフックが必要だからです).

インストレーション

 * 1) Subversionからすべての拡張機能のファイルをチェックアウトしてMediaWikiのextensionsディレクトリ内のTitleBlacklistサブディレクトリに設置して下さい.
 * 2)  の行をLocalSettings.phpファイルに追加して下さい
 * 3) ブラックリストソースを設定します(下記を参照)

インストレーションはSpecial:Versionページを通して確認できます.

複数のブラックリストソース
ローカルメッセージを除いてTitle blacklistは複数のソースから集めることができます. ブラックリストソースを設定するために次のようなコードを使って下さい:
 * タイトルのブラックリストとしてローカルページに対してはTBLSRC_LOCALPAGEを使って下さい
 * タイトルのブラックリストとして外部URLに対してTBLSRC_URLを使って下さい
 * タイトルのブラックリストとしてファイルに対してはTBLSRC_FILEを使って下さい

ブラックリストを編集する
title blacklistはMediaWiki:Titleblacklistのシステムメッセージとして保存されます.

このページはそれぞれの個別の行ごとに正規表現で構成されます. 例：

Foo  [Bb]ar #No one should create article about it

それぞれのエントリは で閉じられ、 で分割されたオプションの属性を含むことができます.
 * autoconfirmed - 認証されていない利用者のみページを作成/アップロード/移動をできません
 * noedit - 利用者はこの記事を編集できません
 * casesensitive - ブラックリストに掲載されたタイトルを確認するときに大文字小文字の区別をする(don't ignore case)
 * errmsg - 標準のものの代わりに表示されるメッセージの名前です
 * moveonly - 作成はできますが、移動はできません (35163)
 * newaccountonly - マッチする利用者名でアカウントを作成することはできませんが、ページの作成はできます (38977)
 * reupload - ブラックリストに掲載されたファイルの再アップロードを許可 (33656)

タイトルはテキストの形で照合されるので、正規表現中のアンダースコア ("_") は拡張機能によってスペースに変換されます.

ホワイトリスト
同様に、ホワイトリストはMediaWiki:Titlewhitelistに保存されます. ブラックリストが適用された後、次にホワイトリストが適用されます. よってブラックリストにマッチする利用者の入力はホワイトリストに掲載されているエントリにマッチする場合を除き阻害されます. ホワイトリストを利用するためにはLocalSettings.phpを設定する必要はありません. 上に列挙されたブラックリスト用のオプションはホワイトリストでも働きます (例： casesensitive).

警告メッセージを設定する
ブラックリストに掲載されたタイトルを持ったページを作ろうとすると、警告メッセージが利用者に表示されます. これはシステムメッセージを通してカスタマイズできます
 * MediaWiki:Titleblacklist-forbidden-edit: ページ作成と編集に関して、
 * MediaWiki:Titleblacklist-forbidden-move: ページ移動に関して、
 * MediaWiki:Titleblacklist-forbidden-upload: 画像のアップロードに関して、
 * MediaWiki:Titleblacklist-forbidden-new-account: アカウント作成に関して.

カスタマイズされたメッセージは errmsg の属性を利用して定義されます.

コンセプト概要
新しいアカウントの利用者名は新しい記事と違う方法でTitle Blacklistによって見なされます. TitleBlacklistは利用者がアカウント作成ページで入力した に"User:" (または同等のローカライズされたもの)を付加します. よって titleBlackListがあなたの正規表現とのマッチングを実行するとき、MediaWiki:TitleblacklistまたはMediaWiki:Titlewhitelistの"User:" + とマッチします.

たとえば、あなたが "jill" という新規利用者の参加を防止したくてブラックリストの正規表現に "jill.* " を設定し、ある利用者がアカウント作成ページで "jill" という利用者名を入力したとします. このとき、titleBlackListは "jill.*" (正規表現) と "User:jill" (入力された文字列) との比較を実行します. これらは一致しないので、"jill" は許可されます (そしてあなたはこれを意図していなかった). 意図したとおりにアカウント作成を防止するには、".*jill.* " または "User:jill.* " のような正規表現を使う必要があります.

もし正規表現に一致しない利用者名のアカウント作成をすべて防止したいなら、MediaWiki:Titleblacklistですべての利用者のアカウント作成を禁止し、そして許可される利用者名の正規表現をMediaWiki:Titlewhitelistに書きます.

作業例
スペースで区切られた2つの単語から成り、それぞれの単語は大文字から始まる利用者名をアカウント作成時に強制したい場合、以下のようにします: 1. TitleBlacklistをインストールします.

2. 以下をLocalSettings.phpに追加します.

3. https://www.example.com/mywiki/MediaWiki:Titleblacklist に以下を追加

4. https://www.example.com/mywiki/MediaWiki:Titlewhitelist に以下を追加

5. https://www.example.com/mywiki/MediaWiki:Titleblacklist-forbidden-new-account を編集 と一致したため、"$2" というアカウントは作成できませんでした. 利用者名として本名を使用してください. 利用者名はスペースによって区切られた2単語により成り立つ必要があります. それぞれの単語は大文字で始まる必要があります.

例:
 * "Mary Smith". OK.
 * "MarySmith". Invalid.
 * "Mary smith". Invalid.
 * "marysmith". Invalid.

作成される利用者名 (それと記事名) の防止規則はMediaWiki:TitleblacklistとMediaWiki:Titlewhitelistによって制御されています. このメッセージはMediaWiki:Titleblacklist-forbidden-new-accountでカスタマイズできます.

Change log
拡張機能のコードに対する完全な変更ログ(サードパーティからの国際化の更新を含む)Subversion logから入手できますが、ポイントリリース間の変更情報の要約は下記の通りです:

正規表現のリソース

 * Brief Introduction to Regular Expressions
 * http://etext.lib.virginia.edu/services/helpsheets/unix/regex.html
 * The 30 Minute Regex. Tutorial
 * http://codeproject.com/dotnet/RegexTutorial.asp
 * PHP: PCRE regex syntax,PHPで使われる正規表現の構文
 * http://php.net/manual/en/reference.pcre.pattern.syntax.php