Extension:Approved Revs
Approved Revsは、管理者がページの特定の版を「承認済み」としてマークできるようにする拡張機能です。 承認された版は、利用者がそのメイン URL でページを表示したときに表示されるものです。
版が承認されたとしても、ページの内容を取得するほとんどの拡張機能は、承認された版ではなく、最後の版を取得します(この2つが異なる場合)。 しかしながら、例えばCargo やSemantic MediaWiki など、ページから特定のデータ を取得する拡張機能は、幸いにも正しい(すなわち承認される)データを表示しています。
ダウンロード
Approved Revsのコードは、.zip形式で、ここからダウンロードできます。
また、MediaWikiのソースコードリポジトリからGit経由で直接ダウンロードすることもできます。 コマンドラインからは、次のように呼び出せます。
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/ApprovedRevs.git
各ファイルのバージョン履歴を含むコードをオンラインで見るには、phab:diffusion/EARE/browse/master/にアクセスしてください。
インストール
この拡張機能をインストールするには、'1' ディレクトリを作成し (圧縮ファイルを展開するか Git 経由でダウンロードします)、このディレクトリをメインの MediaWiki 'extensions' ディレクトリ内に配置します。
そして、ファイル 'LocalSettings.php
' に、次の行を追加します。
wfLoadExtension( 'ApprovedRevs' );
また、この拡張機能のために、2つのデータベース・テーブルをインストールする必要があります。"approved_revs" と "approved_revs_files" です。
MediaWikiの/maintenanceディレクトリでスクリプト"update.php "を実行する、もしくはデータベースでSQLを直接呼び出す - 拡張機能の/sqlディレクトリにあるApprovedRevs.sql
とApprovedFiles.sql
のファイルで見つけることができます。
最後に、Approved Revs には、以下の利用者権限が定義されています。
- '
approverevisions
' - ページの修正の承認・非承認の権限です。 既定では、'sysop' グループの全メンバーに与えられています。 - '
viewlinktolatest
' - 承認された版を持つページの上部に、利用者が見ているものが必ずしも最新の版ではないことを説明する注記を表示する許可を与えること。 既定では全員に与えられる(つまり'*')。 - '
viewapprover
' - 承認された版を持つページの上部に、誰が最後に承認したかを示す別のメモを表示する許可を得ました。 既定では、'sysop' グループの全メンバーに与えられています。
これらの権限のいずれかを持つ利用者の集合を変更できます。
一例として「最新の改版を表示」リンクを管理者限定で表示するには、Approved Revs(承認済み改版)を追加した下に次のコードを追加してください。
$wgGroupPermissions['*']['viewlinktolatest'] = false;
$wgGroupPermissions['sysop']['viewlinktolatest'] = true;
作者
Approved RevsはYaron Korenが書いたものです。 またコードの重要な貢献は、Raimond Spekking, Siebrand Mazeland, Jeroen De Dauw, Eli Handel, Andrew Engelbrecht, hashar, Anomie, Mark Hershberger, Flo, Addshore, James Montalvo, Fodagus, Kris Fieldその他からも寄せられました。
使用法
この拡張機能をインストールすると、「approverevisions
」権限を預かる人なら誰でも特定のページの変更履歴を開くと、各行に「(承認する)」というリンクが表示されます。
そのリンクをクリックすると、その版が承認されたものとして設定されます。
履歴ページに戻ると、他のすべての版の横に「承認」リンクが表示され、承認された版の「承認取り消し」リンクも表示されます。承認された版の行には、その横に星印が表示されます。
他の版の「承認」をクリックすると、その版に承認が再設定されます。一方、「承認解除」をクリックすると、このページには承認された版が存在しなくなります。
'approverevisions
'権限を持たない利用者には、承認された版の行に星のアイコンが表示されるだけで、履歴ページには特に何も表示されません。
既定では、'approverevisions
'権限を持つ利用者が、すでに承認された版を持つページに対して編集を行った場合、その編集、つまりページの最新の版は、自動的に承認済みとマークされるようになりました。
一方、承認された版がないページ(もちろん新規ページも含まれます)には、自動承認は適用されません。
これには唯一の例外があり、当該のウィキで$egApprovedRevsBlankIfUnapproved をtrue
に設定した場合です。その設定があると、approverevisions
を認められた利用者が未承認のページを編集した場合、自動的にページが承認されて当該のページは白紙ではなくなります。
自動承認を排除し、すべての承認を手動で行う設定も可能で、そのためにはApproved Revsを追加した下にLocalSettings.php
を追加します。
$egApprovedRevsAutomaticApprovals = false;
同様の理屈は、ファイルの新しいバージョンにも当てはまります。これらの自動承認も、次の行を加えると自動的に無効にできます。
$egApprovedRevsFileAutomaticApprovals = false;
反対に、LocalSettings.php
に対して "$egApprovedRevsBlankIfUnapproved
" もしくは "$egApprovedRevsBlankFileIfUnapproved
" を true に設定すると(以下を参照)、「approverevisions
」権限を預かる利用者なら、たとえ対象のページ類及び/あるいはファイルが承認済みの改版がなくても - その人が編集したページ類及び/あるいはファイルはどれも承認済みになります。
Manual revision approvals and unapprovals get stored in the 'approval' log; though approvals that happen automatically, as a result of someone with approval power editing a page, do not.
Special:ApprovedRevs page
Approved Revsでは、4つの別々のリストを表示する特別なページ「Special:ApprovedRevs
」を定義しています。
- 承認された版が最新でないページ
- 承認された版を持つすべてのページ
- 「未承認ページ」(版が承認されていないすべてのページ)
- 無効な承認を受けたページ(以前は承認可能だったが、現在は承認されていない名前空間のページなど)。
3つ目のリストである承認済み版のないページについては、オプションで各ページにそのページの最新の版を承認済みとしてマークするためのリンクを含めることができます。
このようなリンクを含めるには、LocalSettings.php
に以下を追加します。
$egApprovedRevsShowApproveLatest = true;
承認情報の保管
承認に関する情報 - 処理をした人、実施した時間 - は「改版の承認」ログに記録され、ページSpecial:Logで閲覧できます。 最近の承認状況もSpecial:RecentChangesで表示されています。
未承認のページを空白で表示する
希望する場合は、承認された版がないページを空白として表示させることができます。利用者は「履歴」タブをクリックすればすべての版を閲覧できますが、メインの表示は空白のページになります。
そのためには、LocalSettings.php
にApproved Revs を含めた後の任意の場所に、次の行を追加するだけです。
$egApprovedRevsBlankIfUnapproved = true;
同様に、以下の行を追加することで、承認済みバージョンのないファイルを他のページに埋め込んだときに表示されないように設定することができます。
$egApprovedRevsBlankFileIfUnapproved = true;
未承認ページの表示
既定では、版が承認されていないページは、そのステータスを示すことなく、単に普通に表示されます。
このようなページの上部に "This is the latest revision of this page; it has no approved revision" というメッセージを表示させることができます。そのためには、LocalSettings.php
.に次の行を追加してください。
$egApprovedRevsShowNotApprovedMessage = true;
ページを承認制にする
Wikiのページには、改訂を承認できるものとできないものがあります。これは、3つの方法のうちの1つで決定されます。
名前空間内のすべてのページを承認可能に設定する
グローバル変数$egApprovedRevsEnabledNamespaces
が存在し、どの名前空間を拡張機能で扱うかを決定する。
この変数は数列で、既定では名前空間6件を当ててあります。NS_MAIN
(定義ゼロはメイン名前空間)、NS_USER
(2は利用者ページ)NS_FILE
(6はファイル類)、NS_TEMPLATE
(10はテンプレート)、NS_HELP
(12はヘルプページ)、NS_PROJECT
(4はプロジェクト名前空間つまり通常はウィキの名称と同じ)。
このセットには、さらに名前空間を追加することができます。LocalSettings.phpでApproved Revsを含めた後、次のようなものを追加します。
$egApprovedRevsEnabledNamespaces[NS_USER_TALK] = true;
MediaWikiにおけるそれらの特別な実装のために、承認はそれらのページ上で正しく動作しないからです。
既定の名前空間を承認可能なものとして削除するには、その値をfalseに設定します。 例えば、ファイルを許可しないようにするには、次のように追加します。
$egApprovedRevsEnabledNamespaces[NS_FILE] = false;
ページを#approvable_byで承認可能にする
Approved Revs は、特定のページを特定の個別の利用者やグループによって承認可能であると定義できる #approvable_by
パーサー関数を定義します。
例えば、次の呼び出しは、利用者 Alice Jones、および Bureaucrat と Sysop グループの利用者に、呼び出されたページを承認させることができます:
{{#approvable_by: users = Alice Jones | groups = bureaucrat,sysop }}
このパーサー機能によってページの編集を許可された利用者が、この機能が追加された前の版を承認した場合、管理者がその行為を取り消すまで、その利用者は他の承認を行えなくなります (承認された版にはこの呼び出しが含まれていないため)。
マジックワードで承認可能なページを設定
Individual pages not within one of the specified namespaces can also be made approvable, by adding the __APPROVEDREVS__
magic word anywhere within the page.
このマジックワードは、テンプレートでページに追加することをお勧めします。
もし__APPROVEDREVS__
が直接ページに追加された場合、その文字列が追加される前のページの版を承認しないようにだけ注意してください; これは予期しない動作につながる可能性があります。
管理者以外の人にページを「所有」させること
一般的な「approverevisions
」権限を持たない人が、特定のページの改訂を承認できるようにする、つまり、特定のページの所有権を持つようにすることが有効な場合があります。
An obvious example is user pages - it makes sense to allow each user to be able to approve revisions on their own user pages.
For namespaces other than "User", you can choose to have the user who originally created any page in that namespace be designated as the page owner, who then has revision-approval permission for that page.
特定の名前空間に対してこのような「所有権」を持つには、名前空間を変数$egApprovedRevsSelfOwnedNamespaces
例えば、標準名前空間と利用者名前空間のページを利用者が「所有」できるようにする、つまり承認できるようにするには、LocalSettings.php に以下のように追加する必要があります。
$egApprovedRevsSelfOwnedNamespaces = array( NS_MAIN, NS_USER );
名前空間は、$egApprovedRevsSelfOwnedNamespaces
に追加する前に $egApprovedRevsEnabledNamespaces
に属する必要があります。
承認情報を表示する
Approved Revsは、特定のページ(またはファイル)に関する承認情報を表示するために使用できる5つの「マジックワード」を定義しています。 このような構文の一覧は以下の通り:
APPROVALYEAR
- ページが最後に承認された年APPROVALMONTH
- ページが最後に承認された月APPROVALDAY
- ページが最後に承認された日の属する月日APPROVALTIMESTAMP
- ページが最後に承認された日付/時刻の完全なタイムスタンプAPPROVALUSER
- そのページを最後に承認した利用者。
この5つは、単にそれ自体を呼び出すか(呼び出したページの情報を返す)、ページ名を渡して呼び出す(指定したページの情報を返す)ことができます。
そのため、例えば「メインページ」というページでは、{{APPROVALYEAR}}
の呼び出しで「メインページ」が最後に承認された年が表示され、{{APPROVALYEAR:Employees list}}
の呼び出しで「従業員リスト」というページが最後に承認された年が表示されます。
If any of these magic words are called for a page that has no approved revision, or for a page that does not exist, they will simply not display anything.
最初の4つのマジックワードは、ファイルに対して呼び出すこともできます。最後のAPPROVALUSERは、残念ながら機能しません。
Note that, if you began using Approved Revs before version 1.4, the first four magic words, which all have to do with the time in which the revision was made, will most likely display a blank for any page whose revision was approved while Approved Revs was still on an older version.
API
Approved Revs defines an API action, "approve", which lets you either approve or (if the extra parameter "unapprove" is added) unapprove any revision via the MediaWiki API. このAPIの構文の説明は、こちらを参照してください。
すべてのページを承認済みとしてマークする
まだ承認された版がないページについては、最新の版を自動的に承認することで、コンテンツを迅速に初期化することができます。
そのためには、コマンドラインスクリプト 'ApprovedRevs/maintenance/approveAllPages.php
' を使用することができます。
このスクリプトは、承認可能であるが承認済み版がないすべてのページの最新の版を承認します。
(このスクリプトにはさまざまなオプションのフラグがあり、すでに承認された版があるページも処理できるようになっています)。
ファイル承認
また、Approved Revsでファイルの版を承認できます。 実際のファイルに対する改訂のみが承認可能であり、ファイル ページのウィキテキストに対する改訂は承認されないことに留意してください。 そのため、ファイルのページ右上の「履歴を見る」リンクをクリックしても、ファイルの承認は行われません。 その代わり、ファイルページの下部付近にある「ファイル履歴」セクションまでスクロールし、ファイル履歴表の右側にある「承認」をクリックしてください。
画像のバージョンが承認されると、その画像が他のページに含まれるときに、そのバージョンが表示されます。 画像以外のアップロード(PDFなど)については、ファイルへの直接リンクは、最新版ではなく承認済みのバージョンに移動します。
approveAllPages.php
スクリプト同様、ファイルの承認に特化した別のスクリプトapproveAllFiles.php
があります。
バージョン履歴
Approved Revsのバージョンは、現在2.1です。 完全なバージョン履歴をご参照ください。
既知の問題点
- AccessControl 拡張機能があっても、匿名利用者は Approved Revs を使えません - 改版の承認はすなわち "Deny_action" エラーを発生させるからで、理由はその利用者には編集履歴が表示されないからです。
プロジェクトへの貢献
バグ / 機能の要望
バグレポートや要望はYaron Koren(yaron57 gmail.com)に送ってください。
パッチの提供について
バグを発見して修正したり、新しい機能のコードを書いた場合は、ぜひ Git にコミットを提出するか、直接、 "ApprovedRevs
" ディレクトリに行って、以下のように入力してパッチを書いてください。
git diff > descriptivename.patch
パッチを作成された方は、説明文を添えて、Yaron Korenまでお送りください。
翻訳
Approved Revsの翻訳はtranslatewiki.netを通じて行われます。 この拡張機能の訳は、こちらでご覧いただけます:https://translatewiki.net/w/?title=Special:Translate&group=ext-approvedrevs。 言語値の追加もしくは既存のものを変更するには、まずtranslatewiki.netでアカウントを登録し、次に特定の言語もしくは複数言語の翻訳をこのページで管理者に申請してください(手順そのものは簡単)。 ある言語に対するパーミッションが与えられれば、その言語にログインして、好きなメッセージを追加したり編集したりすることができるようになります。
関連項目
この拡張機能は以下のウィキ ファーム/ウィキ ホスト/パッケージに含まれています: これは正式な一覧ではありません。 一部のウィキ ファーム/ウィキ ホスト/パッケージは、ここに記載されていなくてもこの拡張機能を含んでいる場合があります。 必ずご利用のウィキ ファーム、ウィキ ホスト、バンドルで確認してください。 |