Extension:FlaggedRevs

For detailed usage information of this extension, see Help:Extension:FlaggedRevs

Article validation allows for Editor and Reviewer users to rate revisions of articles and set those revisions as the default revision to show upon normal page view. These revisions will remain the same even if included templates are changed or images are overwritten. This allows for MediaWiki to act more as a Content Management System (CMS).

Setup

 * 1) You must take care to match the version of FlaggedRevs to the version of MediaWiki that you are using! i.e. if you're using MediaWiki 1.13, use FlaggedRevs 1.13. Use the MediaWiki Download extension special page (here) to obtain the correct version of FlaggedRevs and extract it to your extensions directory.
 * 2) Run .../mwdir/maintenance/archives/populateSha1.php. Why?
 * 3) Make sure .../mwdir/extensions/FlaggedRevs is web-readable (required for CSS/JS).
 * 4) To enable article validation statistics [OPTIONAL?], run .../mwdir/extensions/FlaggedRevs/maintenance/updateStats.php once. This may be unnecessary depending on the web user's rights (because that's clear, right?)
 * 5) Add the following line to LocalSettings.php:
 * 6) Run .../mwdir/maintenance/update.php. Why do we run this again? Note: If you can't do so (i.e. if you don't have command line access), you will need to import .../mwdir/extensions/FlaggedRevs/FlaggedRevs.sql into the database (after making the changes that are described in the file).
 * 7) Run .../mwdir/extensions/FlaggedRevs/maintenance/updateAutoPromote.php. Why?
 * 1) Run .../mwdir/extensions/FlaggedRevs/maintenance/updateAutoPromote.php. Why?

Note: It is important that the sha1</tt> column is populated (in the populateSha1.php</tt> step). This allows for image injection via key rather than the (name,timestamp) pair. In the future, image moves may be supported by MediaWiki, breaking the later method. Reference for further reading?

Be sure to set the  variable in FlaggedRevs.php. It should be an array of 2 string items:

Any (secret) text will do, though it shouldn't be less than about 16 characters (less secure) or very long (waste of resources).

Initially, no user can see the reviewer's widget. To fix this, login as a wiki sysop and go to Special:UserRights. Promote a user to reviewer/editor and log out. When you login as the promoted user you will see the reviewer's widget on the bottom of an editable page.

Configuration
The first step is to set up the extension specific user rights privileges (for general documentation, see Manual:User_rights). The extension defines two new types of user:


 * Editors : can review revisions to spot check for nonsense/graffiti.
 * Reviewers : can spot check and validate/proofread pages.

To set up editors and reviewers, make sure there is a user with a bureaucrat account. Bureaucrat accounts, by default, can promote users to Reviewer/Editor status or remove it. Sysop accounts can do the same with Editor status. This is because Sysops have to do with wiki maintenance, but bureaucrats have to do with users management.

Basic settings
FlaggedRevs.php comes with a number of configurable variables. These should be configured in LocalSettings.php.


 * - Sets what namespaces to allow for reviewing. This is an array of integers. Look at the beginning of includes/defines.php to see what integer the default namespaces map to.


 * - Sets what namespaces allow for recent changes patrol. This is ignored for pages in reviewable namespaces.


 * - An associative array with keys corresponding to each flag type and values that are arrays of three settings - 'levels','quality', and 'pristine. 'levels' controls the number of review levels, while 'quality' decides what level the tag must be for a revision to be 'quality'. The same goes for 'pristine'.

''For example, for the tag configurations, suppose one wants to have "accuracy", "depth", and "tone" tags, with 3 levels each. The admin also want revisions with at least "accuracy" and "depth" of the 2nd levels to count as "quality". The following settings will do that:''

Each tag corresponds to a MediaWiki namespace page. For example, the first level of the "accuracy" tag corresponds to the text at MediaWiki:revreview-accuracy-1. This can therefore be customized.


 * - Whether flagged revisions override the default revision or simply give a tag notice to the stable version.
 * - Makes users in these groups see the current revision by default.
 * - Makes FlaggedRevs available only for pages that are set to use them by default. This is affected by  if there is no per-page setting.

For example:
 * - Allow Editors/reviewers to add notes to the bottom of the page.
 * - 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).


 * - Array of string titles. These titles are exempt from FlaggedRevs.

User interface

 * - Whether to use "stable" and "draft" revision tabs.
 * - When enabled, a simpler, icon based UI is used. Does not affect the tags shown in edit mode.
 * - 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

 * - If enabled, Editors will jump to the diff against the last stable version after they make edits, unless it could be auto-reviewed or the page has no stable version.
 * - If enabled, every edit by a reviewer user 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 be disabled.
 * Auto review will create a review where accuracy, depth and style are set to 1. In general, such low values will earn the review a "sighted" designation. Remember that "quality" has higher precedence than "sighted". The presence of a "quality" revision will block out a "sighted" revision. If you don't want to be blocked out by a "quality" revision, you can redefine the meaning of quality.
 * 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  and   as   or  ;
 * - Whether to automatically review new pages by editors to the basic minimal level.

Automatic user promotion

 * - 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.

For example, for $wgFlaggedRevsAutopromote, one might have:

Site access

 * - For sites that restrict viewing of the wiki, this settings makes the stable version of pages visible to people in certain groups (or all visitors). This variable is an array of user groups. Setting it to  will let all visitors be able to see the stable version of pages. To restrict viewing of your wiki, set   and  . This is useful for smaller wikis with an internal team of writers/editors.
 * This does not work well with img_auth.php, as non-user viewers will not be able to see images. You will probably just want to leave images public but under hashed directories to make them harder to find. This is acceptable if there are no private files and the main concern is just not to release unverified content.
 * This will probably be useless without having.
 * Make sure that  is set properly. You will at least want something like  . You may also want visible directory or category pages. Otherwise, the wiki will be hard to browse for readers.
 * Use  to allow viewing of all talk pages by these users.
 * You will probably want to edit MediaWiki:loginreqpagetext to make it more detailed. It will come up in various situations and thus should explain the approval system setup.

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.

Use

 * See also: Help:FlaggedRevs

Approving pages
Users with some level of review status will have a small rating form on page view and diffs 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.

A user cannot review a page he 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".

API
FlaggedRevs adds an API module for reviewing revisions, and three list modules corresponding to the special pages for reviewed pages, unreviewed pages and "old" reviewed pages.

action = review
Reviews a page.


 * Parameters
 * : The revision ID for which to set the flags
 * : An edit token retrieved through prop=info
 * : Comment for the review (optional)
 * : Set the flag named "accuracy" to the specified value; (replace "accuracy" with the flag name to set another flag)


 * Example

list = reviewedpages
Lists pages that have been reviewed.


 * Parameters
 * : Start listing at this page id.
 * : Stop listing at this page id.
 * : In which direction to list.
 * : The namespaces to enumerate.
 * : How to filter for redirects
 * : How to filter by quality (0=sighted,1=quality)
 * : How many total pages to return.


 * Example

list = unreviewedpages
Lists pages which have never been reviewed.


 * Parameters
 * : Start listing at this page title.
 * : Stop listing at this page title.
 * : The namespaces to enumerate.
 * : How to filter for redirects
 * : How to filter by quality (0=sighted,1=quality)
 * : How many total pages to return.


 * Example

list = oldreviewedpages
Lists pages that have at some point been reviewed, but for which the most recent revision is not reviewed.


 * Parameters
 * : Start listing at this page id.
 * : Stop listing at this page id.
 * : In which direction to list.
 * : The namespaces to enumerate.
 * : How to filter for redirects
 * : How many total pages to return.


 * Example

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.
 * Using parser function variable to determine what templates to include (such as one template for each day) will not work for a stable revision. The revision will show as it was upon the time of review.

Uninstalling

 * Remove the include line from LocalSettings.php
 * Drop the tables in FlaggedRevs.sql.
 * Drop the columns 'page_ext_reviewed', 'page_ext_quality', and 'page_ext_stable', and the index 'ext_namespace_reviewed' from the page table (if they exist, only older versions used these)
 * Run maintenance/refreshLinks.php</tt> from the command line to flush out the stable version links
 * Run maintenance/rebuildFileCache.php 0 overwrite</tt> from the command line if you use $wgFileCache

Testing platforms

 * English
 * Deutsch
 * Polski

Licensing
© GPL, Aaron Schulz, Joerg Baach, 2007