Extension:FlaggedRevs
Розширення Flagged Revisions дозволяє користувачам Editor і Reviewer to rate версії статей і позначати такі версії як версії за замовчуванням to show upon нормальний вигляд сторінки. Ці версії залишатимуться без змін, навіть якщо включені шаблони зміняться чи файли будуть перезаписані. Це дозволяє MediaWiki діяти подібніше до системи керування вмістом (CMS).
Завантаження
The extension can be retrieved directly from Git [?]:
- Browse code
- Some extensions have tags for stable releases.
- Browse tags
- Select the tag
- Click "snapshot"
- Each branch is associated with a past MediaWiki release. There is also a "master" branch containing the latest alpha version (might require an alpha version of MediaWiki).
- Browse branches
- Select a branch name
- Click "Continue"
Extract the snapshot and place it in the extensions/FlaggedRevs/ directory of your MediaWiki installation.
If you are familiar with git and have shell access to your server, you can also obtain the extension as follows:
cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/FlaggedRevs.git
Встановлення
/var/www/mediawiki
. Якщо ви працюєте в іншому сімействі операційних систем, вам необхідно використати команди та шляхи до файлів, appropriate операційній системі.Слідуйте цим крокам для встановлення FlaggedRevs:
- Ensure that you are running MediaWiki version 1.17 or greater. If not, you will need to upgrade before you can install FlaggedRevs.
- Download FlaggedRevs. Обрати версію FlaggedRevs, яка збігається з версією MediaWiki, яку ви використовуєте. Наприклад: якщо ви використовуєте MediaWiki 1.17, завантажте FlaggedRevs 1.17.
- Extract the downloaded file to the
extensions/FlaggedRevs
directory of your MediaWiki installation. For example:tar -xzf FlaggedRevs-MW1.17-r75373.tar.gz -C /var/www/mediawiki/extensions
- Ensure that image hashes are up-to-date by running the populateImageSha1.php maintenance script.[1] Наприклад:
php maintenance/populateImageSha1.php
- Make sure that the
extensions/FlaggedRevs/frontend/modules
directory is readable by the web server (so that the web server can serve the FlaggedRevs CSS, images and JavaScript.) Наприклад: Припускаючи, що користувач веб-сервера не володіє директорієюextensions/FlaggedRevs/frontend/modules
, запустіть:chmod o+r extensions/FlaggedRevs/frontend/modules
- Увімкніть збір статистики article review.
- Вимкніть генерацію статистики за вимогою. Встановіть
$wgFlaggedRevsStatsAge = false;
у LocalSettings.php . Це попередить генерацію статистики під час доступу до статей (що може призвести до поганої продуктивності під час одночасного доступу до багатьох статей без поточної статистики). - Встановіть заплановану генерацію статистики. Створіть роботу cron для запуску
extensions/FlaggedRevs/maintenance/updateStats.php
через регулярний інтервал. Запустітьtime php updateStats.php
, аби побачити, як довго працює скрипт, і налаштуйте інтервал робіт вашого cron відповідним чином. Наприклад, створіть роботу cron, що запускаєupdateStats.php
під користувачемwww-data
щогодини:echo "@hourly php /var/www/mediawiki/extensions/FlaggedRevs/maintenance/updateStats.php" | crontab -u www-data -
- Вимкніть генерацію статистики за вимогою. Встановіть
- Enable FlaggedRevs by adding the following line to LocalSettings.php :
require_once "$IP/extensions/FlaggedRevs/FlaggedRevs.php";
- Update MediaWiki's database schemas by running
php maintenance/update.php
. Це повинно бути зроблене після збереження попереднього кроку, або ви отримуватимете помилку бази даних під час доступу до будь-якої сторінки. - Promote користувачам бути reviewers. Після першого встановлення FlaggedRevs жоден користувач не може бачити reviewer's widget. Щоб виправити це, увійдіть як бюрократ вікі та перейдіть на Special:UserRights, а потім надайте review права одному чи декільком користувачам. Reviewers бачитимуть reviewer's widget внизу редагованої сторінки.
Примітки
- ↑ If the hash table is up-to-date, images can be referenced by using their hashes rather than by a name/timestamp pair. У майбутньому переміщення образів можуть підтримуватися MediaWiki, які зламають посилання, що використовують пари ім'я/мітка часу.
Встановлення серверу Вікімедіа
- Див. також wikitech:Heterogeneous deployment#Install a new extension on a wiki і wikitech:How to do a schema change.
Інструкції для спільнот проектів Вікімедіа: m:Flagged Revisions#Enabling.
Ці примітки специфічні для серверів Вікімедіа і, можливо, неприйнятні до вашого встановлення.
cd /a/common/php-1.23wmf5
mwscript sql.php --wiki=metawiki extensions/FlaggedRevs/backend/schema/mysql/FlaggedRevs.sql
cd ..
sync-dir wmf-config
touch wmf-config/InitialiseSettings.php
sync-common-file flaggedrevs.dblist
sync-dir wmf-config
Конфігурація
Права та групи користувачів
За замовчуванням ніхто не може нічого review, тому першим кроком є налаштування прав користувачів.
Групи користувачів | Права користувача |
---|---|
reviewer | validate |
review | |
editor | |
autoreview | |
unreviewedpages |
Права користувачів
FlaggedRevs створює наступні нові групи користувачів:
review
– користувачі можуть review версіїvalidate
– користувачі можуть review версії, та можуть встановлювати всі теги на всі рівніautoreview
– будь-які нові версії, зроблені користувачем, автоматично позначаються підписанимиautoreviewrestore
– autoreview відкотів, зроблених користувачем.unreviewedpages
– користувачі можуть переглядати Special:UnreviewedPagesstablesettings
– користувачі можуть змінювати налаштування стабільних версій будь-якої сторінкиmovestable
– користувачі можуть переміщати сторінки зі стабільними версіями
Групи користувачів
FlaggedRevs створює наступні нові групи користувачів:
editor
– отримуватиautoreview, review, unreviewedpages
, плюс стандартні права користувачів Mediawikiautoconfirmed, editsemiprotected
reviewer
– отримуватиautoreview, review, unreviewedpages, validate
, плюс стандартні права користувачів MediaWikiautoconfirmed, editsemiprotected
autoreview
– отримуватиautoreview
Як призначити права користувачів
Права користувачів можуть бути призначені двома способами:
- Призначаючи права групам користувачів
Призначаючи ці права користувачів наявним групам уLocalSettings.php
:
$wgGroupPermissions['sysop']['review'] = true; //allow administrators to review revisions
- Призначаючи права окремим користувачам
Вручну додати облікові записи користувачів до відповідних груп через Special:UserRights.
- За замовчуванням:
- Бюрократи можуть додавати / видаляти Reviewers
- Адміністратори можуть додавати / видаляти і Autoreviewers, і Editors.
Основні налаштування
FlaggedRevs.php
comes with a number of configurable variables.
These should be configured in LocalSettings.php
.
$wgFlaggedRevsNamespaces
– Sets what namespaces may be subject to the review process. This is an array of integers. Look at the beginning ofincludes/Defines.php
to see what integer the default namespaces map to and use the defined constants for readability.$wgFlaggedRevsTags
– Sets the tags and their three settings: 'levels', 'quality', and 'pristine'- Definition
$wgFlaggedRevsTags
is an associative array with keys corresponding to each tag name and values that are arrays of the three settings 'levels', 'quality', and 'pristine':- 'levels' controls the number of review levels,
- 'quality' decides what level the tag must be for a revision to be "якісна"
- 'pristine' decides what level the tag must be for a revision to be "чиста"
- Labeling
- Each tag can be labeled editing the page MediaWiki:revreview-<tag-name>.
- Each tag level can be labeled editing the page MediaWiki:revreview-<tag-name>-<level-number>.
- Example
- Suppose one wants to have 'accuracy', 'depth', and 'tone' tags, with 3 levels each.
- The admins also want revisions with at least 'accuracy' and 'depth' of the 2nd levels to count as 'quality'. The following settings will do that:
$wgFlaggedRevsTags = [ 'accuracy' => [ 'levels' => 3, 'quality' => 2, 'pristine' => 4 ], 'depth' => [ 'levels' => 3, 'quality' => 2, 'pristine' => 4 ], 'tone' => [ 'levels' => 3, 'quality' => 1, 'pristine' => 4 ], ];
- By default, the tags are labeled as they are set in the
$wgFlaggedRevsTags
array. In this example this means the tags appear exactly as 'accuracy', 'depth' and 'tone'. - To show tags for example as their capitalized name, the admins have to edit these pages with the shown content:
tag labeling page content accuracy MediaWiki:revreview-accuracy Точність depth MediaWiki:revreview-depth Повнота tone MediaWiki:revreview-tone Tone
- To label the tag levels, the admins have to create these pages with the shown content:
tag level labeling page content accuracy 0 MediaWiki:revreview-accuracy-0 не зазначена 1 MediaWiki:revreview-accuracy-1 переглянута 2 MediaWiki:revreview-accuracy-2 точна depth 0 MediaWiki:revreview-depth-0 не зазначена 1 MediaWiki:revreview-depth-1 базова 2 MediaWiki:revreview-depth-2 середня tone 0 MediaWiki:revreview-tone-0 Weak 1 MediaWiki:revreview-tone-1 Good 2 MediaWiki:revreview-tone-2 Excellent
- The resulting setup will be:
tag names level names Точність не зазначена переглянута точна Повнота не зазначена базова середня Tone Weak Good Excellent
$wgFlaggedRevsOverride
– Whether the stable version is the default content for pages.- Individual pages can be configured to have the stable or draft version as the default content by administrators.
$wgFlaggedRevsTagsRestrictions
– An array with keys corresponding to each flag type, and values that are arrays of rights and how high users with it can rate the flags (integral tag level).- Example
$wgFlaggedRevsTagsRestrictions = [ 'accuracy' => [ 'review' => 1 ], 'depth' => [ 'review' => 2 ], 'style' => [ 'review' => 3 ], ];
$wgFlaggedRevsWhitelist
– Array of string titles. These titles are pages that are exempt from FlaggedRevs. They are unreviewable and have no flagging UI. Replace' '
with'_'
in titles (e.g. "Main page" -> "Main_page").
Інтерфейс користувача
$wgSimpleFlaggedRevsUI
– Коли включено, то використовується простий, заснований на іконках UI. Не впливає на теги, показувані в режимі редагування.$wgFlaggedRevsLowProfile
– This setting hides the review status box/bar for pages that are reviewed in their latest version. Explanatory text is also removed from some places.
Workflow
$wgFlaggedRevsExceptions
– Makes users in these groups see the current/draft revision by default.$wgFlaggedRevsAutoReview
– If enabled, every edit by a user with 'autoreview' rights is automatically reviewed upon save. There is no need to hit the "submit review" button. This feature requires that the previous revision was also reviewed; otherwise, auto-review will not occur.$wgFlaggedRevsTagsAuto
– IfwgFlaggedRevsAutoReview
is enabled, this settings controls how high each tag can be auto-reviewed. If allowed, tags will be auto-reviewed to the same level the previous revision tags were. This is an associative array; each key is a tag and each value is a tag level.- Example
$wgFlaggedRevsTagsAuto = [ 'accuracy' => 1, 'depth' => 1, 'style' => 1 ];
- Changes in templates and images are auto-reviewed (per-page). This could possibly cause bad versions to be reviewed. Users should be encouraged to use preview or review the page after saving. You may want to set
$wgNamespaceProtection[NS_IMAGE]
and$wgNamespaceProtection[NS_TEMPLATE]
as[ 'editor' ]
or[ 'autoconfirmed' ]
Automatic user promotion
$wgFlaggedRevsAutopromote
– An array with keys for days, edits, time spacing, benchmarks, emailconfirmed, recent content page edits, total content edits, content pages edited, edit summaries used, IP uniqueness, and userpage existence as keys. The values correspond to how many days/edits are needed for a user account to be autopromoted to Editor status and whether they must be emailconfirmed and have a user page do so. The user must have at least X edits that are Y or more days apart, where X is the number of benchmarks and Y is the time spacing. Set this variable to false to disable this entirely.- If a user has their Editor rights removed, they will not automatically be re-granted (the editor status log is checked for revocations).
- Some of these counts are not retroactive, so you may notice a delay in promotions.
- Example
- For
$wgFlaggedRevsAutopromote
, one might have: $wgFlaggedRevsAutopromote['days'] = 60; # days since registration $wgFlaggedRevsAutopromote['edits'] = 150; # total edit count $wgFlaggedRevsAutopromote['excludeDeleted'] = true; # exclude deleted edits from 'edits' count above? $wgFlaggedRevsAutopromote['spacing'] = 3; # spacing of edit intervals $wgFlaggedRevsAutopromote['benchmarks'] = 15; # how many edit intervals are needed? $wgFlaggedRevsAutopromote['recentContentEdits'] = 10; # $wgContentNamespaces edits in recent changes $wgFlaggedRevsAutopromote['totalContentEdits'] = 30; # $wgContentNamespaces edits $wgFlaggedRevsAutopromote['uniqueContentPages'] = 10; # $wgContentNamespaces unique pages edited $wgFlaggedRevsAutopromote['editComments'] = 5; # how many edit comments used? $wgFlaggedRevsAutopromote['email'] = true; # user must be emailconfirmed? $wgFlaggedRevsAutopromote['userpageBytes'] = 0; # if userpage is needed, what is the min size?
Advanced
See FlaggedRevs.php for a complete list of configuration options (with some explanatory comments).
Be sure to change only LocalSettings.php
to set configuration options rather than editing this file.
To have a wiki where non-users can only see the stable version of articles, see Extension:FlaggedRevs/Restricting unapproved revisions .
Use
- See also: Help:FlaggedRevs
Approving pages
Users with some level of review status will have a small rating form on page view (at the bottom of the page) and diffs (at the top of the page) that lets them review revisions. Each tag must at least meet the minimal level of approval. Users should look at the whole page, included templates and images, before reviewing. The (diff to stable) link is very useful for speeding up this process.
Users cannot review a page which they cannot edit. They cannot lower the level of a revision from a level they cannot set. Blocked users cannot do anything.
At Special:StableVersions, you can list out all of the reviewed revisions for a certain page or view reviewed revisions.
Upkeep
At Special:UnreviewedPages, there is a list of pages that have not yet been reviewed, for Editors only. A namespace must be selected and an optional category filter is also present.
At Special:OldReviewedPages, there is a list of pages that have been reviewed, but have edits pending. This is for Editors only. An optional category filter is also present.
Pages that cannot be reviewed can still be patrolled for anti-vandalism purposes by Editors to see what has been checked already.
A list of reviewed pages at the main review levels can be found at Special:ReviewedPages.
Logging
All relevant actions are permanently logged, so everything can be tracked and overseen properly.
- A log of promotion/demotion of editors and the reasons is kept at Special:Log/userrights.
- A log of the approval/unapproval of revisions is kept at Special:Log/review.
- A log of changes to the stable versioning configuration to pages is logged at Special:Log/stable.
Also, a new page, Special:QualityOversight shows only flaggings log entries related to quality revisions. This is useful if the main log is too flooded with page "sightings".
Notes
$wgUseRCPatrol
is enabled with the extension.
Patrolling of reviewable pages is disabled, but flagged revisions are marked as patrolled in Recent Changes. This will mean that the only way to patrol a reviewable revision is to flag it. Non-reviewable pages still behave as normal (depending on site patrol settings).
- Sysops can change whether quality revision have precedence or whether the stable version is shown by default for specific pages.
To disable this, add $wgGroupPermissions['sysop']['stablesettings'] = false;
to LocalSettings.php
.
- Page links, category, image, template, language, and external links are still based on the current version of pages.
- Users cannot move pages they cannot review.
This is deliberate; see task T15994. To work around this, add $wgGroupPermissions['autoconfirmed']['movestable'] = true;
to LocalSettings.php
- You can demote Editors either temporarily by blocking them or permanently via Special:UserRights.
An extra demotion log item will appear for tracking purposes.
API
FlaggedRevs adds API modules for reviewing revisions and configuring "stabilization" of pages, a module for retrieving flag configuration, and three list modules corresponding to the special pages for reviewed pages, unreviewed pages and "old" reviewed pages.
Some more API documentation is at Extension:FlaggedRevs/API .
action = review
Reviews a page.
- Parameters
revid
: The revision ID for which to set the flagstoken
: A csrf token retrieved through action=query&meta=tokenscomment
: Comment for the review (optional)flag_accuracy
: Set the flag named "accuracy" to the specified value; (replace "accuracy" with the flag name to set another flag)
- Example
Review revision 12345
action = stabilize
Changes page stabilization settings.
- Parameters
title
: Title of page to be stabilizedreason
: Reason for stabilizationexpiry
: (Deprecated?) Stabilization expiry. Default: infinitereview
: Whether to auto-review the pagewatch
: Whether to watch the pagetoken
: An edit token retrieved through action=query&meta=tokens
- For protection-like configurations (
$wgFlaggedRevsProtection=true
):
protectlevel
: The right users must have in order for their edits to not require review.
- Otherwise (
$wgFlaggedRevsProtection=false
):
default
: Default revision to show (latest | stable)precedence
: Which stable revision should be shown (pristine | quality | latest). Default: qualityautoreview
: Restriction level for the 'autoreview' right (sysop | none). Default: none
- Example
Configure the page "Foo" such that only quality revisions are shown by default
action = flagconfig
Shows information about review flag configuration.
The following parameters are returned for each tag:
name
: the name of the flaglevels
: the number of possible levels the flag has (not counting the "unreviewed" level)tier2
: level the flag must be for the revision to be considered "quality"tier3
: level the flag must be for the revision to be considered "pristine"
The displayed name for each flag and the different level names for each flag are MediaWiki messages, so can be set and retrieved through the appropriate page; for example the name for the first level of the "accuracy" flag is located at MediaWiki:revreview-accuracy-1.
- Example
Retrieve flag configuration
list = reviewedpages
Lists pages that have been reviewed.
- Parameters
rpstart
: Start listing at this page id.rpend
: Stop listing at this page id.rpdir
: In which direction to list.rpnamespace
: The namespaces to enumerate.rpfilterredir
: How to filter for redirectsrpfilterlevel
: How to filter by quality (0=sighted,1=quality)rplimit
: How many total pages to return.
- Example
List "sighted" pages in main namespace
list = unreviewedpages
Lists pages which have never been reviewed.
- Parameters
urstart
: Start listing at this page title.urend
: Stop listing at this page title.urnamespace
: The namespaces to enumerate.urfilterredir
: How to filter for redirectsurfilterlevel
: How to filter by quality (0=sighted,1=quality)urlimit
: How many total pages to return.
- Example
List pages in the main namespace that have not been "sighted"
list = oldreviewedpages
Lists pages that have at some point been reviewed, but for which the most recent revision is not reviewed.
- Parameters
orstart
: Start listing from this timestamporend
: Stop listing at this timestamp.ordir
: In which direction to list.ornamespace
: The namespaces to enumerate.orfilterredir
: How to filter for redirectsorlimit
: How many total pages to return.
- Example
List pages in the main namespace with recent unreviewed revisions
prop=flagged
Use action=query&prop=flagged to get information about the flagging status of the given pages.
Limitations
- Transclusions across wikis are not stabilized
- External images (aside from Commons) are not stabilized
- Metatemplates that conditionally include other templates may have the condition change between the time a reviewer loaded a page and when they reviewed it.
Therefore, there would be no pointers to the revision id for this different template to load from, making it blue linked. You will be notified if this happens during review.
Uninstalling
- Remove the include line from
LocalSettings.php
- Drop the tables in
FlaggedRevs.sql
.
- Drop the columns
page_ext_reviewed
,page_ext_quality
, andpage_ext_stable
, and the indexext_namespace_reviewed
from thepage
table (if they exist; only older versions of FlaggedRevs used these)
- Run
maintenance/refreshLinks.php
from the command line to flush out the stable version links
- Run
maintenance/rebuildFileCache.php 0 overwrite
from the command line if you use$wgFileCache
Testing platforms
See also
- Help:Патрульовані зміни
- Extension:FlaggedRevs/Specifications
- Extension:Approved Revs
- Extension:Moderation – edits remain private until they're approved
- meta:Flagged Revisions#Flagged Revisions on Wikimedia projects
- Project:Editor – documentation about the user groups and rights created by this extension, while it was at use on mediawiki.org
External links
- Quality Assurance in an Open Project – 2008 Wikimedia blog post
- Images of Flagged Revisions – Wikimedia Commons
- About Flagged Revisions – Meta-Wiki
Licensing
© GPL, Aaron Schulz, Joerg Baach, 2007
Це розширення використовується в одному або декількох проектах Вікімедіа. Це, мабуть, означає, що розширення стабільне і працює досить добре, щоб його могли використовувати веб-сайти з великим трафіком. Шукайте назву цього розширення у файлах конфігурації Wikimedia CommonSettings.php та InitialiseSettings.php, щоб побачити, де це встановлене. Повний перелік розширень, встановлених на певній вікі, можна переглянути на сторінці Special:Version вікі. |
Ця робота є вільним програмним забезпеченням; ви можете вільно поширювати та/або змінювати її відповідно до умов GNU General Public License, що опублікована Фондом вільного програмного забезпечення; або версії 2, або більш пізньої версії. Дана робота розповсюджується з надією, що вона буде корисною, але без будь-яких гарантій; зокрема без непрямої гарантії товарної придатності або придатності для конкретних цілей. Дивіться версію 2 і версію 3 GNU General Public License для більш докладної інформації. |