Extension:Approved Revs

From mediawiki.org
This page is a translated version of the page Extension:Approved Revs and the translation is 84% complete.
Outdated translations are marked like this.
MediaWiki 拡張機能マニュアル
Approved Revs
リリースの状態: 安定
実装 フック
説明 管理者がページの特定のリビジョンを「承認」としてマークできるようにします。
作者 Yaron Koren <yaron57@gmail.com> and others
最新バージョン 2.0 (2024年2月)
互換性の方針 master は後方互換性を維持しています。
MediaWiki 1.37+
データベースの変更 はい
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 , Semantic MediaWiki and DynamicPageList , will, 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 }}

このパーサー機能によってページの編集を許可されたユーザーが、この機能が追加されるbeforeのリビジョンを承認した場合、管理者が来てその行為を取り消すまで、そのユーザーは他の承認を行う能力を失います(承認されたリビジョンにはこの呼び出しが含まれていないため)。

マジックワードで承認可能なページを設定

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 例えば、mainとuserの名前空間のページをユーザーが「所有」できるようにする、つまり承認できるようにするには、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でファイルのリビジョンを承認することができます。 実際のファイルに対する改訂のみが承認可能であり、ファイルページのwikitextに対する改訂は承認されないことに留意してください。 そのため、ファイルのページ右上の「履歴を見る」リンクをクリックしても、ファイルの承認は行われません。 その代わり、ファイルページの下部付近にある「ファイル履歴」セクションまでスクロールし、ファイル履歴表の右側にある「承認」をクリックしてください。

画像のバージョンが承認されると、その画像が他のページに含まれるときに、そのバージョンが表示されます。 画像以外のアップロード(PDFなど)については、ファイルへの直接リンクは、最新版ではなく承認済みのバージョンに移動します。

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

バージョン履歴

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

既知の問題点

  • 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). ある言語に対するパーミッションが与えられれば、その言語にログインして、好きなメッセージを追加したり編集したりすることができるようになります。

関連項目