Extension:FlaggedRevs
標記修訂擴展允許編輯者和審核員用户對條目的修訂版本進行評級,並將這些修訂設定為在普通查看頁面時的預設版本。 這讓MediaWiki更像是一個內容管理系統(CMS)。
安裝
- 下载文件,并将解压后的
FlaggedRevs
文件夹移动到extensions/
目录中。
开发者和代码贡献人员应从Git安装扩展,输入:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/FlaggedRevs - 将下列代码放置在您的LocalSettings.php 的底部:
wfLoadExtension( 'FlaggedRevs' );
- 运行更新脚本,它将自动创建此扩展必须依赖的数据库表。
- 按需求配置。
- 完成 – 在您的wiki上导航至Special:Version,以验证已成功安装扩展。
设置
AllowEncodedSlashes
如果使用的是Apache 2.3.12或更高版本,则应将AllowEncodedSlashes设置为"NoDecode"。
将下面一行添加到你的<VirtualHost>
文件中,如果没有,则添加到httpd.conf文件的末尾:
AllowEncodedSlashes NoDecode
你编辑完httpd.conf后,需要重新启动Apache。
Alter your .htaccess (if needed)
如果您正在缩短URL ,则需要在 .htaccess 中添加一个例外,以便使用 REST API 。
在rest.php 中标记修订的调用。例如:
https://[domain]/w/rest.php/flaggedrevs/internal/review/Main_Page
如果在调用上述url時没有正确设置.htaccess条件,FlaggedRevs将"照字面地"尝试访问名为"W/rest.php/flaggedrevs/internal/review/Main Page
"的條目。
以下是在 .htaccess 中添加例外的一种方法,已加入強調:
RewriteEngine On RewriteCond %{REQUEST_URI} !^/w/rest\.php RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d RewriteRule ^(.*)$ w/index.php?title=$1 [L,QSA] RewriteRule ^$ w/index.php [L,QSA]
将用户晋升为审阅者
首次安装FlaggedRevs后,不會有用户可以看到审阅者的工具集。 要解决这个问题,请以维基官員的身份登录并转到Special:UserRights,然后授予一个或多个用户审查权。 審閱者將會在可編輯頁面的底部看到審閱者的工具集。
文章審閱统计(可选)
/var/www/mediawiki
中。對於按计划收集文章審閱的统计数据,請创建一个cron作业以定期运行extensions/FlaggedRevs/maintenance/updateStats.php
运行time php updateStats.php
以查看脚本运行所需的时间并适当地设置cron作业间隔。
例如,建立一個cron任務在每個小時以www-data
的身分執行updateStats.php
:
@hourly php /var/www/mediawiki/extensions/FlaggedRevs/maintenance/updateStats.php
配置
此頁面的一部分(与在主版本中已删除的功能相关)已过时。 |
用户权限和用户组
預設情況下,沒有人可以進行審核,因此第一步是設定用户權限。
用户组 | 用户权限 |
---|---|
reviewer | validate |
review | |
editor | |
autoreview | |
unreviewedpages |
用户权限
標記修訂新增以下用户權限:
review
– 用戶可以審核修訂validate
– 用戶可以審核修訂,並能夠設定任何標記為任何級別autoreview
– 用戶所做的任何新修訂都會被自動標記為已審核autoreviewrestore
– 用戶進行的回退被自動標記為審核。unreviewedpages
– 用戶可以查看Special:UnreviewedPagesstablesettings
– 用戶可以更改任何頁面的穩定版本設定movestable
– 用戶可以移動有穩定版本的頁面
用户组
標記修訂新增以下用戶組:
editor
– 擁有autoreview, review, unreviewedpages
,以及MediaWiki標準用戶權限autoconfirmed, editsemiprotected
reviewer
– 擁有autoreview, review, unreviewedpages, validate
,以及MediaWiki標準用戶權限autoconfirmed, editsemiprotected
autoreview
– 擁有autoreview
如何分配用户权限
用戶權限可以透過兩種方式授予:
- 授予權限到用戶組
將這些用戶權限授予給LocalSettings.php
中已存在的用戶組:
$wgGroupPermissions['sysop']['review'] = true; //allow administrators to review revisions
- 授予權限給特定用戶
透過Special:UserRights手動將用戶帳號添加到對應的用戶組。
- 默认值:
- 行政员可以添加/移除复核者
- 管理員可以添加/移除自動審核員和編輯者。
基本設定
FlaggedRevs.php
附帶了許多可設定的變數。
這些應該在LocalSettings.php
中進行設定。
$wgFlaggedRevsNamespaces
– 設定可以進行審核的命名空間。 這是一個整數的陣列。 查閱Manual:命名空间常量 ,找到預設命名空間所對應的整數,並使用已定義的常數來提高可讀性。$wgFlaggedRevsTags
– 設定標籤及它們三個'levels'设置。- 定义
$wgFlaggedRevsTags
是一個關聯陣列,鍵為所對應的標籤名稱。 数组中唯一有意义的值是'levels',它控制审查级别的数量,而且数组只能有一个元素。- 標籤
- 每個標記可以透過編輯頁面「MediaWiki:revreview-<tag-name>」來設定標籤。
- 每個標記等級可以透過編輯頁面「MediaWiki:revreview-<tag-name>-<level-number>」來設定標籤。
- 預設情況下,標記的標籤在
$wgFlaggedRevsTags
陣列中設定。 如果要覆盖这一点,例如以大写名称显示标签,管理员必须编辑这些页面,显示所显示的内容,例如更改MediaWiki:revreview-accuracy的内容。
- 要標籤標記級別,管理員必須建立這些頁面來顯示內容:
标签 等級 標籤頁面 内容 accuracy 0 MediaWiki:revreview-accuracy-0 不充分 1 MediaWiki:revreview-accuracy-1 可接受 2 MediaWiki:revreview-accuracy-2 准确
- 設定結果將會是:
標籤名稱 等級名稱 准确性 不充分 可接受 准确
$wgFlaggedRevsOverride
– 穩定版本是否為頁面的預設內容。- 各個頁面皆可以由管理員設定預設內容為穩定版本還是草稿版本。
$wgFlaggedRevsTagsRestrictions
– 關聯陣列,鍵為每個標籤的類型,值為可以設定最高標籤等級的對應權限陣列(整數的標籤等級)。- 示例
$wgFlaggedRevsTagsRestrictions = [ 'accuracy' => [ 'review' => 1 ], ];
用户介面
$wgSimpleFlaggedRevsUI
– 啟用後將使用更簡單、基於圖示的用户介面。 不影响编辑模式下显示的标记。$wgFlaggedRevsLowProfile
– 此设置可隐藏最新版本中已审核页面的审核状态框/栏。 某些地方的解释性文字也一併被移除了。
工作流
$wgFlaggedRevsAutoReview
– 如果啟用,則具有'autoreview'權限的用戶的每次編輯都會在儲存時被自動審核。 無需點擊「送出審核」按鈕。 此功能要求前一次修訂版本也必需已被審核,否則,自動審核將不會發生。$wgFlaggedRevsTagsAuto
– 如果wgFlaggedRevsAutoReview
啟用,此設定控制著每個標籤的自動審核的層級。 如果允許,標籤將被自動審核為與前一次修訂相同的級別。 這是一個關聯陣列。每個鍵都是一個標記,每個值都是一個標記等級。- 示例
$wgFlaggedRevsTagsAuto = [ 'accuracy' => 1 ];
- 模板的更改會被自動審核(根據頁面)。 這可能會導致糟的版本通過審核, 應鼓勵用戶們使用預覽或是在儲存後查看頁面。 也許您會想要設定
$wgNamespaceProtection[NS_TEMPLATE]
為[ 'editor' ]
或[ 'autoconfirmed' ]
自動的用戶晉級
$wgFlaggedRevsAutopromote
– 為一個包含鍵的陣列,鍵可以為年齡、編輯數、編輯時間間隔、benchmarks、是否確認電子郵件、最近內容頁面編輯數、總內容頁面編輯數、編輯內容頁面的數量、使用編輯摘要的數量、IP uniqueness和是否存在用戶頁。 這些值對應為用戶帳戶被自動授予「編輯者」狀態所需的天數/編輯數,以及是否通過電子郵件確認和擁有用戶頁。 用戶必須至少在相隔Y天以上至少有過X次的編輯,其中X是基準,而Y是時間間隔。 將此變數設定為false可將這些完全停用。- 如果某個用戶移除了他們的編輯者權限,則他們不會被重新自動授予(檢查編者的狀態日誌以確認是否撤銷)。
- 其中一些計數不具有追溯性,因此您可能會在晉級時發現它有延遲。
- 示例
- 對於
$wgFlaggedRevsAutopromote
,可能的情形是: $wgFlaggedRevsAutopromote['days'] = 60; # 自註冊以來的天數 $wgFlaggedRevsAutopromote['edits'] = 150; # 總編輯次數 $wgFlaggedRevsAutopromote['excludeDeleted'] = true; # 上面的總編輯次數是否不包含已刪除的編輯? $wgFlaggedRevsAutopromote['spacing'] = 3; # 编辑间隔的間距 $wgFlaggedRevsAutopromote['benchmarks'] = 15; # 需要多少这样的编辑间隔? $wgFlaggedRevsAutopromote['recentContentEdits'] = 10; # 在最近更改中$wgContentNamespaces的編輯次數 $wgFlaggedRevsAutopromote['totalContentEdits'] = 30; # $wgContentNamespaces的編輯次數 $wgFlaggedRevsAutopromote['uniqueContentPages'] = 10; # $wgContentNamespaces中相異頁面的編輯次數 $wgFlaggedRevsAutopromote['editComments'] = 5; # 已使用編輯摘要的次數? $wgFlaggedRevsAutopromote['email'] = true; # 用戶是否需要進行電子郵件確認? $wgFlaggedRevsAutopromote['userpageBytes'] = 0; # 如果需要用戶頁,則最少的大小為?
高级
$wgFlaggedRevsRestrictionLevels
-autoreview
或review
权限的限制级别。 当为页面选择了一个级别时,如果用户没有指定权限,其编辑将不会被自动审阅。 级别在Special:Stabilization中设置。$wgFlaggedRevsProtection
- 将此设置为使用 FlaggedRevs 只是作为类似保护机制(Help:Pending changes),而不是标准配置。$wgFlaggedRevsAutoConfirm
- 定义用户何时可以对自己的编辑内容进行自动审核。 设置为false
可禁用。$wgFlaggedRevsHandleIncludes
- 在渲染页面的稳定版本时,是否使用稳定版本的模板。
要讓維基的未註冊用戶只能看到條目的穩定版本,請參閱Extension:FlaggedRevs/Restricting unapproved revisions 。
使用
- 参见: Help:FlaggedRevs
批准页面
擁有某些審核狀態級別的用戶將在檢視頁面(位於頁面底部)和差異(位於頁面頂部)時有小的評級表單,供他們審核修訂版本。 每個標記必須至少達到最低的批准級別。 在審核之前用戶應該查看整個頁面,包括模板和圖片。 與穩定版本間差異的連結對於加速此過程非常有用。
用戶無法審核他們無法編輯的頁面。 他們不能降低修訂級別為他們無法設定的級別。 被封鎖的用戶不能做任何事情。
維護
在Special:UnreviewedPages中,有從未被審核過的頁面列表,僅對編輯者可見。 必須選擇命名空間,也有一個分類過濾器可供選擇。
在Special:OldReviewedPages中,有已審核頁面但包含待定更改的頁面列表。 僅對編輯者可見。 也有一個分類過濾器可供選擇。
无法审查的页面仍可由编辑者出于反破坏目的进行巡查,查看哪些内容已被审核。
日誌
所有相关操作都会被永久记录,因此可以正确跟踪和监督所有操作。
- 被晉級/降級的編輯者及原因的日誌被保存在Special:Log/userrights。
- 批准/拒絕批准修訂的日誌保存在Special:Log/review。
- 更改頁面穩定版本設定的日誌在Special:Log/stable。
备注
$wgUseRCPatrol
被此擴展啟用。 對於可審核的頁面,巡查被停用,但已標記的版本在最近更改中被標示為已巡查。 這表示巡查可審核修訂的唯一方法是標記它。 不可審核的頁面仍然表現正常(取決於站點巡查設定)。- 管理員可以對特定頁面更改預設,是否要优先显示穩定版本。 要禁用此功能,在
LocalSettings.php
添加$wgGroupPermissions['sysop']['stablesettings'] = false;
。 - 頁面連結、分類、圖片、模板、語言和外部連結仍然基於當前版本的頁面。
- 用戶無法移動他們無法審核的頁面。 這是故意的,見工單T15994。 要解決這個問題,在LocalSettings.php中添加
$wgGroupPermissions['autoconfirmed']['movestable'] = true;
。 - 要除去編輯者權限,你可以暫時封鎖他們,或透過Special:UserRights來永久除權。 為了跟踪目的將出現額外的除權日誌項目。
API
FlaggedRevs 增加了用于审核修订版和配置页面"稳定化"的API模块、一个用于检索标记配置的模块,以及两个列表模块,分别对应于未审核页面和已审核"旧"页面的特殊页面。
action=review
審核一個頁面。
- 参数
revid
: 要设置标记的修订版 IDtoken
: 通过action=query&meta=tokens 取得的csrf權杖comment
: 审阅的意见(可选)flag_accuracy
: 将名为 "accuracy "的标记设置为指定值;(用标记名称替换 "accuracy",以设置另一个标记)unapprove
: 如果將它设置,修订将是未批准的,而不是批准的
- 示例
结果 |
---|
<api>
<review revid="12345" />
</api>
|
action=stabilize
更改页面稳定版本设置。
- 参数
title
: 稳定版本的页面标题reason
: 稳定版本的原因expiry
: 稳定期限到期。默认值:无限期review
: 是否自动审核页面watch
: 是否监视页面token
: 通过action=query&meta=tokens 取得的編輯權杖- 用于类保护的配置(
$wgFlaggedRevsProtection=true
):protectlevel
: 用户为使其编辑「不」需要审核而必须拥有的权利。
- 否则 (
$wgFlaggedRevsProtection=false
):default
: 默认显示版本(最新版 | 稳定版)autoreview
: "自动预览"权限的限制级别(系统管理员 | 无)。默认值:无
- 示例
结果 |
---|
<api>
<stabilize title="Foo" default="stable" autoreview="none" expiry="infinite" />
</api>
|
action=flagconfig
显示审查标记配置信息。
每个标签都会返回以下参数:
name
: 权限的名称levels
: 标记的可能级别数(不包括"未审查"级别)
每个标志的显示名称和每个标志的不同级别名称都是MediaWiki訊息,因此可以通过相应页面进行设置和检索;例如,"准确性"标志的第一级名称位于MediaWiki:revreview-accuracy-1。
- 示例
结果 |
---|
<api>
<flagconfig>
<tag name="value" levels="3" tier1="1" />
</flagconfig>
</api>
|
list=unreviewedpages
列出从未审核过的页面。
- 参数
urstart
: 从这一页面标题开始列出。urend
: 从这一页面标题停止列出。urnamespace
: 要枚举的命名空间。urfilterredir
: 过滤重定向urfilterlevel
: 按质量过滤 (0=sighted,1=quality)urlimit
: 要返回的总页数
- 示例
结果 |
---|
<api>
<query-continue>
<unreviewedpages urstart="Arbeitgeberverband_Chemie_und_verwandte_Industrien_für_das_Land_Hessen" />
</query-continue>
<query>
<unreviewedpages>
<p pageid="4762806" ns="0" title="Aaftink" revid="65175047" />
<p pageid="4747500" ns="0" title="Abt RS6" revid="64976429" />
<p pageid="4749877" ns="0" title="Acht Vorlesungen über den Konstruktiven Realismus" revid="65089962" />
<p pageid="4758156" ns="0" title="Alkylglycerole" revid="65169004" />
<p pageid="4719044" ns="0" title="All Riot" revid="64767732" />
<p pageid="4745418" ns="0" title="Allgäu-Panorama-Marathon" revid="64974783" />
<p pageid="4729976" ns="0" title="An- und Einpressen" revid="64742640" />
<p pageid="4742559" ns="0" title="Anjara I. Bartz" revid="64925772" />
<p pageid="4740681" ns="0" title="Anthony Norris Groves" revid="65064712" />
<p pageid="4759964" ns="0" title="Antonino Asta" revid="65169073" />
</unreviewedpages>
</query>
</api>
|
list=oldreviewedpages
列出曾在某一阶段接受过审查,但最新修订版未接受审查的页面。
- 参数
orstart
: 从此时间戳开始列出orend
: 从此时间戳停止列出ordir
: 朝哪个方向列举。ornamespace
: 要枚举的命名空间。orfilterredir
: 如何筛选重定向orlimit
: 要返回的总页数。
- 示例
结果 |
---|
<api>
<query-continue>
<oldreviewedpages orstart="2009-09-15T20:23:05Z" />
</query-continue>
<query>
<oldreviewedpages>
<p pageid="144735" ns="0" title="Two International Finance Centre" revid="64562654" stable_revid="62769201" pending_since="2009-09-15T16:16:33Z" flagged_level="0" flagged_level_text="stable" />
<p pageid="1629949" ns="0" title="Porta San Sebastiano" revid="64791898" stable_revid="61610797" pending_since="2009-09-15T16:19:32Z" flagged_level="0" flagged_level_text="stable" />
<p pageid="2157354" ns="0" title="Entwicklungspolitik der Europäischen Union" revid="64640078" stable_revid="59929751" pending_since="2009-09-15T16:38:33Z" flagged_level="0" flagged_level_text="stable" />
<p pageid="971904" ns="0" title="Federpendel" revid="65142775" stable_revid="59587441" pending_since="2009-09-15T17:37:29Z" flagged_level="0" flagged_level_text="stable" />
<p pageid="3106812" ns="0" title="Soultzbach-les-Bains" revid="64552516" stable_revid="60455707" pending_since="2009-09-15T19:04:07Z" flagged_level="0" flagged_level_text="stable" />
<p pageid="1223029" ns="0" title="VfR Bürstadt" revid="65150048" stable_revid="62925935" pending_since="2009-09-15T19:35:30Z" flagged_level="0" flagged_level_text="stable" />
<p pageid="829158" ns="0" title="GSP" revid="64553869" stable_revid="62913440" pending_since="2009-09-15T19:38:46Z" flagged_level="0" flagged_level_text="stable" />
<p pageid="3453867" ns="0" title="Agios Dimitrios" revid="65103799" stable_revid="64544222" pending_since="2009-09-15T19:47:10Z" flagged_level="0" flagged_level_text="stable" />
<p pageid="2583263" ns="0" title="Jörg Kudlich" revid="64554475" stable_revid="62429967" pending_since="2009-09-15T20:03:24Z" flagged_level="0" flagged_level_text="stable" />
<p pageid="325478" ns="0" title="Liste deutscher Komponisten klassischer Musik" revid="65089571" stable_revid="63582610" pending_since="2009-09-15T20:21:55Z" flagged_level="0" flagged_level_text="stable" />
</oldreviewedpages>
</query>
</api>
|
prop=flagged
使用 action=query&prop=flagged 获取给定页面的标记状态信息。
限制
- 跨維基的嵌入引用不是穩定版本
解除安裝
- 移除在
LocalSettings.php
中包含的require_once
或wfLoadExtension
行 - 刪除表格在的
FlaggedRevs.sql
- 刪除欄位
page_ext_reviewed
、page_ext_quality
和page_ext_stable
,page
表的ext_namespace_reviewed
索引(如果存在;只有舊版本的標記修訂使用他們) - 在命令列執行
maintenance/refreshLinks.php
以清除穩定版本連結 - 如果你使用
$wgFileCache
,在命令列執行maintenance/rebuildFileCache.php 0 overwrite
測試平台
參閱
- Help:已巡查的编辑
- Extension:FlaggedRevs/Specifications
- 维基媒体项目上的标记修订
- Project:Editor – 关于此扩展程序创建的用户组和权限的文档,虽然它在mediawiki.org上使用
- Content approval extensions
外部連結
- 开放项目中的质量保证 – 2008维基媒体博客文章
- 标记修订的图像 – 維基共享資源
- 有關標記修訂 – 元维基
許可證
© GPL, Aaron Schulz, Joerg Baach, 2007
此扩展用于一个或多个维基媒体项目。 这可能意味着扩展足够稳定、运作足够良好,可以用在这样的高流量的网站上。 请在维基媒体的CommonSettings.php和InitialiseSettings.php配置文件中查找此扩展的名称以查看哪些网站安装了该扩展。 特定wiki上的已安装的扩展的完整列表位于Special:Version页面。 |
此扩展在以下wiki农场/托管网站和/或软件包中提供: 這不是一份權威名單。 即使某些wiki农场/托管网站和/或软件包未在这里列出,它们也可能提供此扩展。 请检查你的wiki农场/托管网站或软件包以确认提供情况。 |
本作品为自由软件,您可以依据自由软件基金会发行的GNU通用公共许可证第2版或任意后续版本的条款,传播和/或修改本作品。本作品发表时预期有用,但对此无任何保证,亦无隐含的可以销售或适合特定目的的保证。详情请见GNU通用公共许可证第2版和第3版。 |
- Stable extensions/zh
- User interface extensions/zh
- Special page extensions/zh
- User rights extensions/zh
- Database extensions/zh
- Ajax extensions/zh
- API extensions/zh
- GPL licensed extensions/zh
- Extensions in Wikimedia version control/zh
- Extensions which add rights/zh
- APIGetAllowedParams extensions/zh
- APIQueryAfterExecute extensions/zh
- ArticleDeleteComplete extensions/zh
- ArticleMergeComplete extensions/zh
- ArticleRevisionVisibilitySet extensions/zh
- ArticleUndelete extensions/zh
- ArticleUpdateBeforeRedirect extensions/zh
- ArticleViewHeader extensions/zh
- AutopromoteCondition extensions/zh
- BeforePageDisplay extensions/zh
- BeforeRevertedTagUpdate extensions/zh
- CategoryPageView extensions/zh
- ChangesListInsertArticleLink extensions/zh
- ChangesListSpecialPageQuery extensions/zh
- ChangesListSpecialPageStructuredFilters extensions/zh
- ContribsPager::getQueryInfo extensions/zh
- ContributionsLineEnding extensions/zh
- DeleteAccount extensions/zh
- DifferenceEngineViewHeader extensions/zh
- EchoGetDefaultNotifiedUsers extensions/zh
- EditPageBeforeEditButtons extensions/zh
- EditPageGetCheckboxesDefinition extensions/zh
- EditPageNoSuchSection extensions/zh
- GetPreferences extensions/zh
- GoogleNewsSitemap::Query extensions/zh
- InfoAction extensions/zh
- InitializeArticleMaybeRedirect extensions/zh
- LoadExtensionSchemaUpdates extensions/zh
- MagicWordwgVariableIDs extensions/zh
- MakeGlobalVariablesScript extensions/zh
- MediaWikiServices extensions/zh
- MergeAccountFromTo extensions/zh
- NewDifferenceEngine extensions/zh
- PageHistoryBeforeList extensions/zh
- PageHistoryLineEnding extensions/zh
- PageHistoryPager::getQueryInfo extensions/zh
- PageMoveComplete extensions/zh
- PageSaveComplete extensions/zh
- ParserFirstCallInit extensions/zh
- ParserGetVariableValueSwitch extensions/zh
- ProtectionForm::save extensions/zh
- ProtectionForm::showLogExtract extensions/zh
- ProtectionFormAddFormFields extensions/zh
- RecentChange save extensions/zh
- RevisionDataUpdates extensions/zh
- RevisionFromEditComplete extensions/zh
- RevisionUndeleted extensions/zh
- ScribuntoExternalLibraries extensions/zh
- SkinAfterContent extensions/zh
- SkinTemplateNavigation::Universal extensions/zh
- SpecialContributions::getForm::filters extensions/zh
- SpecialNewPagesFilters extensions/zh
- SpecialNewpagesConditions extensions/zh
- SpecialPage initList extensions/zh
- TitleGetEditNotices extensions/zh
- UserGetRights extensions/zh
- UserLoadAfterLoadFromSession extensions/zh
- UserMergeAccountFields extensions/zh
- WikiExporter::dumpStableQuery extensions/zh
- GetUserPermissionsErrors extensions/zh
- All extensions/zh
- Pages using deprecated NoteTA template
- Outdated pages/zh
- Extensions used on Wikimedia/zh
- Extensions included in BlueSpice/zh
- Extensions included in Fandom/zh
- Extensions included in Miraheze/zh
- Extensions included in WikiForge/zh
- Revision management extensions/zh
- Extensions requiring shell access/zh
- Rating extensions/zh