扩展:PageTriage
PageTriage 发布状态: 稳定版 |
|
---|---|
![]() |
|
实现 | 特殊页面 , 用户界面 |
描述 | Facilitates reviewing and approving new pages |
作者 | Ryan Kaldari, Benny Situ |
最新版本 | 0.3.0 (2018-06-26) |
兼容性方针 | Snapshots releases along with MediaWiki. Master is not backwards compatible. |
MediaWiki | 1.27+ |
数据庫更改 | 是 |
表 | pagetriage_log pagetriage_page pagetriage_page_tags pagetriage_tags |
许可协议 | MIT授權條款 |
下载 | |
例子 | Special:NewPagesFeed on the English Wikipedia |
|
|
|
|
|
|
翻譯PageTriage擴充功能如在translatewiki.net可用 | |
问题 | 尚未完成的工作 · 回報錯誤 |
PageTriage is an extension that aims to provide a feature-rich interface for triaging newly-created articles. It is intended to replace the new page patrol core function while adding additional functionality for reviewing, tagging, and improving new articles. It adds a Special:NewPagesFeed page, and a page curation toolbar to new pages for those with the 'patrol' permission. It was developed by the Wikimedia Foundation's Features Engineering team. 额外的详细信息参见页面屏模。
重要提醒:部分配置和代码专用于英语维基百科的工作流,并使扩展目前几乎不可能国际化。 (参见Phabricator:T50552。)
下载
此扩展可直接从Git检索到 [?]:
- 浏览代码
- 部分扩展有稳定版本标签。
- 浏览标签
- 选择标签
- 点击“快照”
- 每个分支与过去的MediaWiki发布版本相关联。 这里也有一个“主线”分支,包含最新alpha版本(可能需要MediaWiki的alpha版本)。
- 浏览分支
- 选择一个分支名称
- 点击“继续”
提取快照,并将它放置在您的MediaWiki安装副本的extensions/PageTriage/目录中。
如果您对git熟悉,并且拥有您服务器的shell访问权,您也可以通过以下方法获得扩展:
cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/PageTriage.git
安装
- 下载文件,并将其放置在您
extensions/
文件夹中的PageTriage
目录内。 - 将下列代码放置在您的LocalSettings.php的底部:
wfLoadExtension( 'PageTriage' ); // These two settings are optional, and will enable the Articles-for-Creation mode. $wgExtraNamespaces[118] = 'Draft'; $wgPageTriageDraftNamespaceId = 118;
- 运行更新脚本,它将自动创建此扩展必须依赖的数据库表。
完成 – 在您的wiki上导航至Special:Version,以验证扩展已成功安装。
致使用MediaWiki 1.24或更早版本的用户:
上面的说明介绍的是安装此扩展的新方法,它使用wfLoadExtension()
。
如果您需要在早期版本(MediaWiki 1.24和更早版本)中安装此扩展,而不是wfLoadExtension( 'PageTriage' );
,您需要使用:
require_once "$IP/extensions/PageTriage/PageTriage.php";
To actually see the extension working:
- Add a new stub page as an anonymous user.
- 访问Special:NewPagesFeed
The new page should appear, flagged as "无分类", "孤立", etc. To see the page curation toolbar:
- Login as a user with the 'sysop' permission, or add a group with the "patrol" permission, and add some user to that group, and login as that user.
- 访问Special:NewPagesFeed
- Now you should see a "巡查" button next to the new page.
- Click this and you should see the page curation toolbar on the new page.
扩展配置
The extension is based on the 'patrol' right. For more information about configuring patrolling, see 手册:巡查 .
The following configuration variables can be set from your LocalSettings.php file:
- $wgPageTriageEnableCurationToolbar: Set to false to disable the curation toolbar (default is true)
- $wgPageTriageInfiniteScrolling: Whether or not to use infinite scrolling in the new pages feed (default is true)
- $wgPageTriageNoIndexUnreviewedNewArticles: Set this to true if new, unreviewed articles should be set to noindex. In other words, if they should not be indexed by search engines until they are reviewed. (default is false)
- $wgPageTriageMaxAge: The age (in days) at which PageTriage allows unreviewed articles to become indexed by search engines (if $wgPageTriageNoIndexUnreviewedNewArticles is true) (default is 90).
- $wgPageTriageNamespaces: The namespaces that PageTriage is active in. (default is NS_MAIN and NS_USER).
有关配置变量的完整列表,请参阅extension.json。
wiki上的配置
It is possible to configure much of PageTriage on-wiki via the pages MediaWiki:PageTriageExternalDeletionTagsOptions.js
and MediaWiki:PageTriageExternalTagsOptions.js
, although the structure of the configuration may change in the future (to better accommodate wikis besides English Wikipedia).
通过查看以下内容,您可以大致了解配置的工作原理:
这两个文件的运行方式大致相同。
There are two top-level jQuery variables that define the curation templates that are listed in the curation toolbar under the (add tags) and
(nominate for deletion) buttons.
这些是:
$.pageTriageTagsOptions = {};
$.pageTriageDeletionTagsOptions = { Main: {}, User: {} };
The 'Main' and 'User' refer to the namespace of the page being curated. Each sub-item in the three sets above defines the tabs shown at the left side of the toolbar, and has the following form:
{
label: 'Short title',
desc: 'A longer description.', // Text only, no HTML or Wikitext markup
multiple: false, // Whether more than one of the tags can selected at once.
tags: { tag1 = {}, tag2 = {} }
}
Then the actual templates that are listed are defined under the above tags
variable. Each deletion template has the following form:
{
tag: 'Actual_template_name', // Without the 'Template:' prefix.
label: 'Friendly template title',
desc: 'A longer description.', // Text only, no HTML or Wikitext markup
code: '',
params: {},
anchor: '',
talkpagenotiftopictitle: 'message-name', // The message name (e.g. pagetriage-del-tags-speedy-deletion-nomination-notify-topic-title) used as the section/topic title when posting to the editing user's talk page. Usually, you can reuse one of the existing messages (currently pagetriage-del-tags-speedy-deletion-nomination-notify-topic-title, pagetriage-del-tags-prod-notify-topic-title, pagetriage-del-tags-xfd-notify-topic-title). If you need a new one, file a task so $wgPageTriageDeletionTagsOptionsContentLanguageMessages or the PageTriage repository can be updated.
talkpagenotiftpl: 'Template_name' // The template that will be added to the editing user's talk page, not including the talk page heading (handled by talkpagenotiftopictitle).
}
目前,有些标签必须存在:
$.pageTriageDeletionTagsOptions.Main.xfd.tags.articlefordeletion
示例
So, if you don't want to use any of the built-in deletion templates (which can be imported from NewPagesFeed_Templates.xml, by the way) then you can replace them all with a single one by adding the following at the bottom of your MediaWiki:PageTriageExternalDeletionTagsOptions.js
page:
var deletionSection = {
label: 'Deletion',
desc: 'Nominate for deletion.',
multiple: false,
tags: {
articlefordeletion: {
tag: 'delete',
label: 'Delete',
desc: 'Nominate this page for deletion.',
code: '',
params: {},
anchor: '',
talkpagenotiftopictitle: 'pagetriage-del-tags-xfd-notify-topic-title',
talkpagenotiftpl: 'Deletion notification'
}
}
};
$.pageTriageDeletionTagsOptions = { Main: { xfd: deletionSection }, User: { xfd: deletionSection } };
Client-side hooks
PageTriage provides a specialized action queue system to allow other scripts and gadgets to integrate with it. This is similar to mw.hook
except that it uses promises. This is done using the mw.pageTriage.actionQueue
module. See the comments in the source code for documentation on how the system works.
The actionQueue module is available after the mw.hook ext.pageTriage.toolbar.ready
fires.
PageTriage will give the action queue handler an Object with the following data, in addition to other data as noted below:
pageid
— ID of the page being reviewed.title
— Title of the page, including namespace.reviewer
— Username of who is using PageTriage.creator
— Username of the creator of the page.reviewed
— Whether or not the page is currently or will be marked as reviewed.
Available actions
delete
— Fired when the reviewer tags a page for deletion. The data given to the handler also includes:tags
— An object of all the templates added to the page. The keys are the template title, and the values are an object of metadata, including things like the speedy deletion code.
mark
— Fired when the review status of a page is changed. Also includes:note
— The personal message the reviewer added for the creator of the page. This may be blank.
tags
— Fired when maintenance tags are added to the page. Also includes:tags
— An array of the titles of all templates that were added to the page.note
— The personal message the reviewer added for the creator of the page. This may be blank.
示例
To use the action queue, register a function to be ran when an aforementioned action is fired. PageTriage will wait for any asynchronous code to complete before doing anything else, such as refreshing the page. For example, to edit Sandbox after a page has been marked as reviewed, you could use:
$( function () {
// You must first listen for the ext.pageTriage.toolbar.ready event using mw.hook, to ensure your handler is registered at the right time.
mw.hook( 'ext.pageTriage.toolbar.ready' ).add( function ( queue ) {
// Listen for the 'mark' action.
queue.add( 'mark', function ( data ) {
return new mw.Api().edit( 'Sandbox', function ( revision ) {
// Replace 'foo' with the note the reviewer left.
return revision.content.replace( 'foo', data.note );
} );
} );
} );
} );
API
PageTriage adds 5 API endpoints which can be used:
api.php?action=pagetriagestats
- Retrieves stats about the number of pages in the queue and the top reviewersapi.php?action=pagetriagelist
- Retrieves the list of pages in the queue and associated metadataapi.php?action=pagetriageaction
- Mark a page as reviewed or unreviewedapi.php?action=pagetriagetagging
- Add clean-up tags or deletion templates to a pageapi.php?action=pagetriagetemplate
- Internal API for fetching Backbone templates for use in the JS application
参见
![]() | 此扩展被用于一个或多个维基媒体项目上。 这可能意味着扩展稳定且工作良好,足以用在同等高流量的网站上。 请在维基媒体的CommonSettings.php和InitialiseSettings.php配置文件中寻找此扩展名称以查看安装它的网站。 详细的已安装扩展的完整列表可在wiki的Special:Version页面找到。 |
- Stable extensions/zh
- Special page extensions/zh
- User interface extensions/zh
- MIT licensed extensions/zh
- Extensions in Wikimedia version control/zh
- ArticleDeleteComplete extensions/zh
- ArticleViewFooter extensions/zh
- BeforeCreateEchoEvent extensions/zh
- BlockIpComplete extensions/zh
- ChangeTagsAllowedAdd extensions/zh
- ChangeTagsListActive extensions/zh
- EchoGetDefaultNotifiedUsers extensions/zh
- LinksUpdateComplete extensions/zh
- ListDefinedTags extensions/zh
- LoadExtensionSchemaUpdates extensions/zh
- LocalUserCreated extensions/zh
- MarkPatrolledComplete extensions/zh
- ORESCheckModels extensions/zh
- PageMoveComplete extensions/zh
- PageSaveComplete extensions/zh
- ResourceLoaderGetConfigVars extensions/zh
- ResourceLoaderRegisterModules extensions/zh
- RevisionFromEditComplete extensions/zh
- UserMergeAccountFields extensions/zh
- All extensions/zh
- Extensions used on Wikimedia/zh
- API extensions/zh