Jump to content

Extension:Approved Revs

From mediawiki.org
This page is a translated version of the page Extension:Approved Revs and the translation is 85% complete.
Outdated translations are marked like this.
MediaWiki 拡張機能マニュアル
Approved Revs
リリースの状態: 安定
実装 フック
説明 管理者がページの特定の版を「承認」としてマークできるようにします。
作者 Yaron Koren <yaron57@gmail.com> and others
最新バージョン 2.1 (2024年7月)
互換性の方針 master は後方互換性を維持しています。
MediaWiki 1.38+
データベースの変更 はい
Composer mediawiki/approved-revs
テーブル approved_revs
approved_revs_files
ライセンス GNU 一般公衆利用許諾書 2.0 以降
ダウンロード
  • $egApprovedRevsBlankIfUnapproved
  • $egApprovedRevsEnabledNamespaces
  • $egApprovedRevsAutomaticApprovals
  • $egApprovedRevsFileAutomaticApprovals
  • $egApprovedRevsShowNotApprovedMessage
  • $egApprovedRevsBlankFileIfUnapproved
  • $egApprovedRevsSelfOwnedNamespaces
  • $egApprovedRevsShowApproveLatest

  • viewlinktolatest
  • approverevisions
  • viewapprover
translatewiki.net で翻訳を利用できる場合は、Approved Revs 拡張機能の翻訳にご協力ください
問題点 未解決のタスク · バグを報告

Approved Revsは、管理者がページの特定の版を「承認済み」としてマークできるようにする拡張機能です。 承認された版は、利用者がそのメイン URL でページを表示したときに表示されるものです。

版が承認されたとしても、ページの内容を取得するほとんどの拡張機能は、承認された版ではなく、最後の版を取得します(この2つが異なる場合)。 Extensions that get specific data from pages, however, such as Cargo and Semantic MediaWiki , fortunately, display the correct (i.e., approved) data.

ダウンロード

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.sqlApprovedFiles.sqlのファイルで見つけることができます。

最後に、Approved Revs には、以下の利用者権限が定義されています。

  • 'approverevisions' - ページの修正の承認・非承認の権限です。 既定では、'sysop' グループの全メンバーに与えられています。
  • 'viewlinktolatest' - 承認された版を持つページの上部に、利用者が見ているものが必ずしも最新の版ではないことを説明する注記を表示する許可を与えること。 既定では全員に与えられる(つまり'*')。
  • 'viewapprover' - 承認された版を持つページの上部に、誰が最後に承認したかを示す別のメモを表示する許可を得ました。 既定では、'sysop' グループの全メンバーに与えられています。

これらの権限のいずれかを持つ利用者の集合を変更できます。 For example, to have the "view most recent revision" link show up only for administrators, you could add the following, below the inclusion of 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などによるコードの貢献も重要なものでした。

使用法

履歴ページ、「承認」リンク、さらに承認された版には星と「未承認」リンクが表示されます

Once the extension is installed, anyone with the 'approverevisions' permission will see a link that reads "(approve)" on each row of a page history page. そのリンクをクリックすると、その版が承認されたものとして設定されます。 履歴ページに戻ると、他のすべての版の横に「承認」リンクが表示され、承認された版の「承認取り消し」リンクも表示されます。承認された版の行には、その横に星印が表示されます。 他の版の「承認」をクリックすると、その版に承認が再設定されます。一方、「承認解除」をクリックすると、このページには承認された版が存在しなくなります。

'approverevisions'権限を持たない利用者には、承認された版の行に星のアイコンが表示されるだけで、履歴ページには特に何も表示されません。

既定では、'approverevisions'権限を持つ利用者が、すでに承認された版を持つページに対して編集を行った場合、その編集、つまりページの最新の版は、自動的に承認済みとマークされるようになりました。 一方、承認された版がないページ(もちろん新規ページも含まれます)には、自動承認は適用されません。 The one exception to this is if $egApprovedRevsBlankIfUnapproved is set to true for the wiki; if it is, any edit by an approverevisions-permitted user to an unapproved page will also automatically become approved, thus turning that page non-blank.

Approved Revsを含むLocalSettings.phpの下に以下を追加することで、自動承認を排除し、その結果、すべての承認を手動で行う必要があります。

$egApprovedRevsAutomaticApprovals = false;

同様の理屈は、新しいバージョンのファイルにも当てはまります。これらの自動承認も、次の行で自動的にオフにすることができます。

$egApprovedRevsFileAutomaticApprovals = false;

Conversely, if you set "$egApprovedRevsBlankIfUnapproved" or "$egApprovedRevsBlankFileIfUnapproved" to true in LocalSettings.php (see below), every edit to pages and/or files made by a user with 'approverevisions' permission becomes approved - even edits to pages/files that don't have an approved revision.

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;

承認情報の保管

Information about approvals - who made them, and when they were made - is stored in the "Revision approval" log, which can be viewed at the page 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が存在し、どの名前空間を拡張機能で扱うかを決定する。 This variable is an array, and by default it holds six namespaces: NS_MAIN (defined as 0, the main namespace), NS_USER (2, user pages), NS_FILE (6, files), NS_TEMPLATE (10, templates), NS_HELP (12, help pages) and NS_PROJECT (4, the project namespace, which usually has the same name as the wiki). このセットには、さらに名前空間を追加することができます。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など)については、ファイルへの直接リンクは、最新版ではなく承認済みのバージョンに移動します。

Just like the approveAllPages.php script, there is another script, approveAllFiles.php, that exists specifically for file approvals.

バージョン履歴

Approved Revsは現在バージョン2.1です。 完全なバージョン履歴をご参照ください。

既知の問題点

  • Approved Revs does not work for anonymous users with the AccessControl extension - approving a revision leads to a "Deny_action" error, because these users do not have access to history.

プロジェクトへの貢献

バグ / 機能の要望

バグレポートや要望はYaron Koren(yaron57@gmail.com)に送ってください。

パッチの提供について

If you found some bug and fixed it, or if you wrote code for a new feature, please either do a Git commit for it, or create a patch by going to the "ApprovedRevs" directory, and typing:

git diff > descriptivename.patch

パッチを作成された方は、説明文を添えて、Yaron Korenまでお送りください。

翻訳

Approved Revsの翻訳はtranslatewiki.netを通じて行われます。 この拡張機能の訳は、こちらでご覧いただけます:https://translatewiki.net/w/?title=Special:Translate&group=ext-approvedrevs。 To add language values or change existing ones, you should create an account on translatewiki.net, then request permission from the administrators to translate a certain language or languages on this page (this is a very simple process). ある言語に対するパーミッションが与えられれば、その言語にログインして、好きなメッセージを追加したり編集したりすることができるようになります。

関連項目