Extension:FlaggedRevs

Article validation allows for Editor and Reviewer classes of users to rate 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. The text with expanded transclusions is stored in the database.

Setup

 * Download the extension from SVN
 * Run the FlaggedRevs.sql query, substituting in your wiki's table prefix. Use FlaggedRevs.pg.sql instead if you use PostgreSQL.
 * SVN up to MW 1.11
 * Run update.php
 * Run rebuildImages.php

Add the  line to localsettings.php.

Configuration
FlaggedRevs.php comes with a number of configurable variables. To modify these, it is best if you copy them to localsettings.php and change them there.


 * - Whether flagged revisions override the default revision or simply give a tag notice to the stable version and a "stable version" tab.
 * has no effect if this is set to false.
 * - Makes flagged revisions override the current version only for people viewing pages that are not logged in or don't have an account.
 * - Allow Editors/reviewers to add notes to the bottom of the page.
 * - How long to cache the stable versions.
 * - An array with keys corresponding to each flag type, with an integer values corresponding to the level that makes the flagged attribute considered quality. If each of these are met, the revision will count as "quality" and take precendece over other reviewed revisions. For all reviews, each flag must be rated at least above level 0 ("unapproved").
 * - How many levels are there to each flag.
 * Make sure this is higher than the values in.
 * - An array with keys corresponding to each flag type which have values that are arrays of each group and how high it can rate the flags.
 * - An array with keys for days, edits, and emailconfirmed 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 or not to do so. Set this variable to false to disable this.
 * Reviewer rights are not auto-assigned. As they have full access to all tagging levels and therefore the ability to make revisions as "quality" (which take precedence over other stable revisions) it is best to leave this assigned individually.
 * If a user has their Editor rights removed, they will not automatically be re-granted (the editor status log is checked for revocations).
 * - Automatically adds reviewed pages to the reviewer's watchlist if they set "watch pages I edit" as true at Special:Preferences.
 * - When enabled, a simpler, icon based UI is used. Does not affect the tags shown in edit mode or at Special:Stableversions.
 * FlaggedRevs assigns "patrol" and "autopatrol" rights to the "Editor" group by default. To disable this add:  and   after loading the extension.
 * - If enabled, editors will jump to the diff against the last stable version after they make edits.

Use
First, make sure there is a bureaucrat or steward account (Stewards can set any arbitrary rights). Bureaucrat accounts, by default, can promote users to Reviewer status or remove it. Sysop accounts can do the same with Editor status.

Users with some level of review status will have a small rating form on page view and diffs that lets them review revisions.

Logging
A log of promotion/demotion of editors and the reasons is kept at Special:Log/validate.

A log of the approval/unapproval of revisions is kept at Special:Log/review.

Limitations

 * Transclusions across wikis are not stabilized
 * External images 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
 * Run maintenance/refreshLinks.php from the command line to flush out the stable versions links

Licensing
(c) GPL, Jeorg Baach, Aaron Schulz, 2007