https://elinux.org/index.php?title=Extension:FlaggedRevs&feed=atom&action=history
Extension:FlaggedRevs - Revision history
2024-03-29T09:07:39Z
Revision history for this page on the wiki
MediaWiki 1.31.0
https://elinux.org/index.php?title=Extension:FlaggedRevs&diff=16754&oldid=prev
Wmat: 1 revision: Importing Help again, with additional pages.
2010-01-28T04:50:40Z
<p>1 revision: Importing Help again, with additional pages.</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<tr class="diff-title" lang="en">
<td colspan="1" style="background-color: #fff; color: #222; text-align: center;">← Older revision</td>
<td colspan="1" style="background-color: #fff; color: #222; text-align: center;">Revision as of 04:50, 28 January 2010</td>
</tr><tr><td colspan="2" class="diff-notice" lang="en"><div class="mw-diff-empty">(No difference)</div>
</td></tr></table>
Wmat
https://elinux.org/index.php?title=Extension:FlaggedRevs&diff=16753&oldid=prev
Aaron Schulz: /* Setup */ older versions
2010-01-26T22:42:21Z
<p><span dir="auto"><span class="autocomment">Setup: </span> older versions</span></p>
<p><b>New page</b></p><div>''For detailed usage information of this extension, see [[Help:Extension:FlaggedRevs]]''<br />
{{Extension<br />
|name = Flagged Revisions<br />
|status = stable<br />
|type1 = interface<br />
|type2 = special<br />
|type3 = user rights<br />
|type4 = database<br />
|hook1 = UserGetRights<br />
|hook2 = ArticleSaveComplete<br />
|hook3 = LinksUpdateConstructed<br />
|hook4 = ArticleUndelete<br />
|hook5 = ArticleMergeComplete<br />
|hook6 = ArticleRevisionUndeleted<br />
|hook7 = ParserClearState<br />
|hook8 = LocalFile::getHistory<br />
|hook9 = BeforeParserFetchTemplateAndtitle<br />
|hook10 = BeforeParserMakeImageLinkObj<br />
|hook11 = ParserAfterTidy<br />
|hook12 = OutputPageParserOutput<br />
|hook13 = ArticleSaveComplete<br />
|hook14 = NewRevisionFromEditComplete<br />
|hook15 = userCan<br />
|hook16 = LogLine<br />
|hook17 = UserRights<br />
|hook18 = GetAutoPromoteGroups<br />
|hook19 = APIGetAllowedParams<br />
|hook20 = APIQueryAfterExecute<br />
|hook21 = MediaWikiPerformAction<br />
|hook22 = BeforePageDisplay<br />
|hook23 = ImagePageFindFile<br />
|hook24 = CategoryPageView<br />
|hook25 = SkinTemplateTabs<br />
|hook26 = ArticleRollbackComplete<br />
|hook27 = ArticleViewHeader<br />
|hook28 = EditPage::showEditForm:initial<br />
|hook29 = PageHistoryPager::getQueryInfo<br />
|hook30 = PageHistoryLineEnding<br />
|hook31 = ImagePageFileHistoryLine<br />
|hook32 = ArticleUpdateBeforeRedirect<br />
|hook33 = DiffViewHeader<br />
|hook34 = EditPage::showEditForm:fields<br />
|hook35 = PageHistoryBeforeList<br />
|hook36 = InitializeArticleMaybeRedirect<br />
|hook37 = HTMLCacheUpdate::doUpdate<br />
|hook38 = ParserTestTables<br />
|hook39 = ArticleDeleteComplete<br />
|hook40 = SpecialPage_initList<br />
|author = [[User:Voice of All|Aaron Schulz]], [[User:Jhb|Joerg Baach]]<br />
|image = <br />
|mediawiki = 1.14a (r39052+)<br />
|license = GPL<br />
|download = {{WikimediaDownload|FlaggedRevs}}<br />
|readme =<br />
|changelog =<br />
|description = Article validation allows for article content management by "editor" and "reviewer" classes.<br />
|parameters=<br />
|rights = review, autoreview, validate, stablesettings, patrolother, movestable<br />
|example = <br />
}}<br />
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 [[w:Content management system|Content Management System]] (CMS).<br />
<br />
== Setup ==<br />
# 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 ([[Special:ExtensionDistributor/FlaggedRevs|here]]) to obtain the correct version of FlaggedRevs and extract it to your extensions directory.<br />
# Run <tt>.../mwdir/maintenance/populateSha1.php</tt> if you haven't done so already.<br />
# Make sure <tt>.../mwdir/extensions/FlaggedRevs/client</tt> (1.16) or <tt>.../mwdir/extensions/FlaggedRevs/</tt> (<=1.15) is web-readable (required for CSS/JS).<br />
# To enable article validation statistics, $wgPhpCli must be set correctly. This is not necessary if you set a cron job to run /FlaggedRevs/maintenance/updateStats.php every so often, which is preferable.<br />
# Add the following line to <tt>[[Manual:LocalSettings.php|LocalSettings.php]]</tt>:<br />
#:<source lang=php>include_once('extensions/FlaggedRevs/FlaggedRevs.php');</source><br />
# Run <tt>.../mwdir/maintenance/update.php</tt>. '''Note:''' If you can't do so (i.e. if you don't have command line access), you will need to import <tt>.../mwdir/extensions/FlaggedRevs/FlaggedRevs.sql</tt> into the database (after making the changes that are described in the file).<br />
# Run <tt>.../mwdir/extensions/FlaggedRevs/maintenance/updateAutoPromote.php</tt>. You can ignore this if you aren't using $wgFlaggedRevsAutopromote.<br />
<br />
<br />
'''Note''': It is important that the <tt>sha1</tt> column is populated (in the <tt>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.<br />
<br />
Be sure to set the <CODE>$wgReviewCodes</CODE> variable in FlaggedRevs.php. It should be an array of 2 string items:<br />
<source lang=php>$wgReviewCodes = array('one','two');</source><br />
<br />
Any (secret) text will do, though it shouldn't be less than about 16 characters (less secure) or very long (waste of resources).<br />
<br />
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.<br />
<br />
== Configuration ==<br />
<br />
=== User rights ===<br />
<br />
By default, nobody can review anything, so the first step is to set up user rights. FlaggedRevs creates or modifies the following user rights:<br />
<br />
* <tt>review</tt> -- user can review revisions<br />
* <tt>validate</tt> -- user can validate revisions<br />
* <tt>autoreview</tt> -- any edits made by the user are automatically marked as sighted<br />
* <tt>unreviewedpages</tt> -- user can view [[Special:UnreviewedPages]]<br />
<br />
and the following new user groups:<br />
<br />
* <tt>Editors</tt> -- receive <tt>autoreview, autoconfirmed, autopatrol, patrol, review</tt> and <tt>unreviewedpages</tt><br />
* <tt>Reviewers</tt> -- receive <tt>review</tt> and <tt>validate</tt><br />
* <tt>Autoreviewers</tt> -- receive <tt>autoreview</tt><br />
<br />
Either assign these user rights to existing user groups in LocalSettings.php:<br />
<br />
<tt>$wgGroupPermissions['sysop']['review'] = true; //allow administrators to review revisions</tt> <br />
<br />
or manually add user accounts to the appropriate groups via [[Special:UserRights]]. By default, Bureaucrats can add/remove both Editors and Reviewers, and Administrators can add/remove Editors.<br />
<br />
===Basic settings===<br />
<br />
FlaggedRevs.php comes with a number of configurable variables. These should be configured in LocalSettings.php.<br />
<br />
*<CODE>$wgFlaggedRevsNamespaces</CODE> - 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.<br />
<br />
*<CODE>$wgFlaggedRevsPatrolNamespaces</CODE> - Sets what namespaces allow for recent changes patrol. This is ignored for pages in reviewable namespaces.<br />
<br />
*<CODE>$wgFlaggedRevTags</CODE> - 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'.<br />
<br />
''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:''<br />
<source lang="php"><br />
$wgFlaggedRevTags = array(<br />
'accuracy' => array( 'levels' => 3, 'quality' => 2, 'pristine' => 4 ),<br />
'depth' => array( 'levels' => 3, 'quality' => 2, 'pristine' => 4 ),<br />
'tone' => array( 'levels' => 3, 'quality' => 1, 'pristine' => 4 ),<br />
);<br />
</source><br />
<br />
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.<br />
<br />
*<CODE>$wgFlaggedRevsOverride</CODE> - Whether flagged revisions override the default revision or simply give a tag notice to the stable version.<br />
*<CODE>$wgFlaggedRevsExceptions</CODE> - Makes users in these groups see the current revision by default.<br />
*<CODE>$wgFlaggedRevsReviewForDefault</CODE> - Makes FlaggedRevs available only for pages that are set to use them by default. This is affected by <CODE>$wgFlaggedRevsOverride</CODE> if there is no per-page setting.<br />
<br />
*<CODE>$wgFlaggedRevsComments</CODE> - Allow Editors/reviewers to add notes to the bottom of the page.<br />
*<CODE>$wgFlagRestrictions</CODE> - 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).<br />
''For example:''<br />
<source lang="php"><br />
$wgFlagRestrictions = array(<br />
'accuracy' => array( 'review' => 1 ),<br />
'depth' => array( 'review' => 2 ),<br />
'style' => array( 'review' => 3 ),<br />
);<br />
</source><br />
<br />
*<CODE>$wgFlaggedRevsWhitelist</CODE> - Array of string titles. These titles are exempt from FlaggedRevs.<br />
<br />
===User interface===<br />
*<CODE>$wgFlaggedRevTabs</CODE> - Whether to use "stable" and "draft" revision tabs.<br />
*<CODE>$wgSimpleFlaggedRevsUI</CODE> - When enabled, a simpler, icon based UI is used. Does not affect the tags shown in edit mode.<br />
*<CODE>$wgFlaggedRevsLowProfile</CODE> - 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.<br />
<br />
===Workflow===<br />
*<CODE>$wgReviewChangesAfterEdit</CODE> - 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.<br />
*<CODE>$wgFlaggedRevsAutoReview</CODE> - 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.<br />
**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. <CODE>$wgFlaggedRevTags = array( 'accuracy'=>1, 'depth'=>1, 'style'=>1 );</CODE><br />
**{{note}} 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 <CODE>$wgNamespaceProtection[NS_IMAGE]</CODE> and <CODE>$wgNamespaceProtection[NS_TEMPLATE]</CODE> as <CODE>array('editor')</CODE> or <CODE>array('autoconfirmed')</CODE>;<br />
*<CODE>$wgFlaggedRevsAutoReviewNew</CODE> - Whether to automatically review new pages by '''editors''' to the basic minimal level.<br />
<br />
===Automatic user promotion===<br />
*<CODE>$wgFlaggedRevsAutopromote</CODE> - 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.<br />
**{{note}} If a user has their '''Editor''' rights removed, they will not automatically be re-granted (the editor status log is checked for revocations).<br />
**{{note}} Some of these counts are not retroactive, so you may notice a delay in promotions.<br />
<br />
For example, for $wgFlaggedRevsAutopromote, one might have:<br />
<source lang="php"><br />
$wgFlaggedRevsAutopromote['days'] = 60; # days since registration<br />
$wgFlaggedRevsAutopromote['edits'] = 150; # total edit count<br />
$wgFlaggedRevsAutopromote['excludeDeleted'] = true; # exclude deleted edits from 'edits' count above?<br />
$wgFlaggedRevsAutopromote['spacing'] = 3; # spacing of edit intervals<br />
$wgFlaggedRevsAutopromote['benchmarks'] = 15; # how many edit intervals are needed?<br />
$wgFlaggedRevsAutopromote['recentContentEdits'] = 10; # $wgContentNamespaces edits in recent changes<br />
$wgFlaggedRevsAutopromote['totalContentEdits'] = 30; # $wgContentNamespaces edits<br />
$wgFlaggedRevsAutopromote['uniqueContentPages'] = 10; # $wgContentNamespaces unique pages edited<br />
$wgFlaggedRevsAutopromote['editComments'] = 5; # how many edit comments used?<br />
$wgFlaggedRevsAutopromote['email'] = true; # user must be emailconfirmed?<br />
$wgFlaggedRevsAutopromote['userpageBytes'] = 0; # if userpage is needed, what is the min size?<br />
$wgFlaggedRevsAutopromote['uniqueIPAddress'] = true; # If $wgPutIPinRC is true, users sharing IPs won't be promoted<br />
</source><br />
<br />
===Site access===<br />
{{Page security extension disclaimer}}<br />
*<CODE>$wgFlaggedRevsVisible</CODE> - 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 <CODE>array('*')</CODE> will let all visitors be able to see the stable version of pages. To restrict viewing of your wiki, set <CODE>$wgGroupPermissions['*']['read'] = false;</CODE> and <CODE>$wgGroupPermissions['*']['edit'] = false;</CODE>. This is useful for smaller wikis with an internal team of writers/editors.<br />
**{{warning}} 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.<br />
**{{note}} This will probably be useless without having <CODE>$wgFlaggedRevsOverride = true</CODE>. <br />
**{{note}} Make sure that <CODE>$wgWhitelistRead</CODE> is set properly. You will at least want something like <CODE>$wgWhitelistRead = array( 'Main Page', 'Special:Search' )</CODE>. You may also want visible directory or category pages. Otherwise, the wiki will be hard to browse for readers.<br />
**{{note}} Use <CODE>$wgFlaggedRevsTalkVisible</CODE> to allow viewing of all talk pages by these users.<br />
**{{note}} 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.<br />
<br />
===Advanced===<br />
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.<br />
<br />
== Use ==<br />
: ''See also: [[Help:FlaggedRevs]]''<br />
===Approving pages===<br />
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.<br />
<br />
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.<br />
<br />
[[Image:Revreview2.png|650px]]<br />
<br />
At '''Special:Stableversions''', you can list out all of the reviewed revisions for a certain page or view reviewed revisions.<br />
<br />
[[Image:Stableversions.PNG|650px]]<br />
<br />
===Upkeep===<br />
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. <br />
<br />
[[Image:Unreviewedpages.PNG|650px]]<br />
<br />
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. <br />
<br />
[[Image:OldReviewedpages.PNG|650px]]<br />
<br />
Pages that cannot be reviewed can still be patrolled for anti-vandalism purposes by '''Editors''' to see what has been checked already.<br />
<br />
A list of reviewed pages at the main review levels can be found at '''Special:Reviewedpages'''.<br />
<br />
[[Image:Reviewedpages.PNG|650px]]<br />
<br />
===Logging===<br />
All relevant actions are permanently logged, so everything can be tracked and overseen properly.<br />
<br />
*A log of promotion/demotion of editors and the reasons is kept at '''Special:Log/userrights'''.<br />
*A log of the approval/unapproval of revisions is kept at '''Special:Log/review'''.<br />
*A log of changes to the stable versioning configuration to pages is logged at '''Special:Log/stable'''.<br />
<br />
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".<br />
<br />
== Notes ==<br />
*<tt>[[Manual:$wgUseRCPatrol|$wgUseRCPatrol]]</tt> is enabled with the extension. Flagged revisions are marked as patrolled. Patrolling and autopatrolling of pages in reviewable namespaces is disabled. Other namespaces can be patrolled by '''Editors'''. This will mean that the only way to patrol a reviewable revision is to tag it as approved. The advantage is that patrolled edits will always correlate with a reviewed revision.<br />
<br />
*Sysops can change whether quality revision have precedence or whether the stable version is shown by default for specific pages. To disable this, add <CODE>$wgGroupPermissions['sysop']['stablesettings'] = false;</CODE> to localsettings.php.<br />
*External text storage is supported. If you already have external text storage on, then the same is applied for fr_text.<br />
*Page links, category, image, template, language, and external links will become the UNION of the current and the stable version.<br />
*Users cannot move pages they cannot review.<br />
*Autoconfirmed users have their edits to non-reviewable pages autopatrolled by default. To disable this, use <CODE>$wgGroupPermissions['autoconfirmed']['autopatrolother'] = false;</CODE><br />
<br />
*You can demote '''Editors''' either temporarily by blocking them or permanently via '''Special:Userrights'''. An extra demotion log item will appear for tracking purposes.<br />
<br />
== API ==<br />
<br />
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.<br />
<br />
=== action = review ===<br />
<br />
Reviews a page.<br />
<br />
; Parameters<br />
*<code>revid</code>: The revision ID for which to set the flags<br />
*<code>token</code>: An edit token retrieved through prop=info<br />
*<code>comment</code>: Comment for the review (optional)<br />
*<code>flag_accuracy</code>: Set the flag named "accuracy" to the specified value; (replace "accuracy" with the flag name to set another flag)<br />
<br />
; Example<br />
{{ApiEx<br />
|desc=Review revision 12345<br />
|p1=action=review<br />
|p2=revid=12345<br />
|p3=token=123ABC<br />
|p4=flag_accuracy=1<br />
|p5=comment=OK<br />
|result=<br />
<source lang="xml"><br />
<api><br />
<review revid="12345" /><br />
</api><br />
</source>}}<br />
<br />
=== action = stabilize ===<br />
<br />
Changes page stabilization settings.<br />
<br />
; Parameters<br />
* <code>title</code>: Title of page to be stabilized<br />
* <code>reason</code>: Reason for stabilization<br />
* <code>default</code>: Default revision to show (latest | stable)<br />
* <code>precedence</code>: Which stable revision should be shown (pristine | quality | latest). Default: quality<br />
* <code>autoreview</code>: Whether to restrict auto-review to administrators (sysop | none). Default: none<br />
* <code>expiry</code>: (Deprecated?) Stabilization expiry. Default: infinite<br />
* <code>review</code>: Whether to auto-review the page<br />
* <code>watch</code>: Whether to watch the page<br />
* <code>token</code>: An edit token retrieved through prop=info<br />
<br />
;Example<br />
{{ApiEx<br />
|desc=Configure the page "Foo" such that only quality revisions are shown by default<br />
|p1=action=stabilize<br />
|p2=title=Foo<br />
|p3=reason=Because_I_can<br />
|p4=precedence=quality<br />
|p5=default=stable<br />
|p6=token=abc123<br />
|result=<br />
<source lang="xml"><br />
<api><br />
<stabilize title="Foo" default="stable" precedence="quality" autoreview="none" expiry="infinite" /><br />
</api><br />
</source>}}<br />
<br />
=== action = flagconfig ===<br />
<br />
Shows information about review flag configuration.<br />
<br />
The following parameters are returned for each tag:<br />
* <code>name</code>: the name of the flag<br />
* <code>levels</code>: the number of possible levels the flag has (not counting the "unreviewed" level)<br />
* <code>tier2</code>: level the flag must be for the revision to be considered "quality"<br />
* <code>tier3</code>: level the flag must be for the revision to be considered "pristine"<br />
<br />
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]].<br />
<br />
; Example<br />
{{ApiEx<br />
|desc=Retrieve flag configuration<br />
|p1=action=flagconfig<br />
|result=<br />
<source lang="xml"><br />
<api><br />
<flagconfig><br />
<tag name="accuracy" levels="3" tier2="2" tier3="4" /><br />
<tag name="depth" levels="3" tier2="1" tier3="4" /><br />
<tag name="style" levels="3" tier2="1" tier3="4" /><br />
</flagconfig><br />
</api><br />
</source>}}<br />
<br />
=== list = reviewedpages ===<br />
<br />
Lists pages that have been reviewed.<br />
<br />
; Parameters<br />
*<code>rpstart</code>: Start listing at this page id.<br />
*<code>rpend</code>: Stop listing at this page id.<br />
*<code>rpdir</code>: In which direction to list.<br />
*<code>rpnamespace</code>: The namespaces to enumerate.<br />
*<code>rpfilterredir</code>: How to filter for redirects<br />
*<code>rpfilterlevel</code>: How to filter by quality (0=sighted,1=quality)<br />
*<code>rplimit</code>: How many total pages to return.<br />
<br />
; Example<br />
{{ApiEx<br />
|desc=List "sighted" pages in main namespace<br />
|p1=action=query<br />
|p2=list=reviewedpages<br />
|p3=rpnamespace=0<br />
|p4=rpfilterlevel=0<br />
|result=<br />
<source lang="xml"><br />
<api><br />
<query-continue><br />
<reviewedpages rpstart="14" /><br />
</query-continue><br />
<query><br />
<reviewedpages><br />
<p pageid="1" ns="0" title="Alan Smithee" revid="62675112" stable_revid="62675112" flagged_level="0" flagged_level_text="stable" /><br />
<p pageid="3" ns="0" title="Actinium" revid="64593870" stable_revid="64593870" flagged_level="0" flagged_level_text="stable" /><br />
<p pageid="5" ns="0" title="Ang Lee" revid="64742530" stable_revid="64742530" flagged_level="0" flagged_level_text="stable" /><br />
<p pageid="6" ns="0" title="Andy Warhol" revid="65008103" stable_revid="65008103" flagged_level="0" flagged_level_text="stable" /><br />
<p pageid="7" ns="0" title="Anschluss (Soziologie)" revid="59086434" stable_revid="59086434" flagged_level="0" flagged_level_text="stable" /><br />
<p pageid="8" ns="0" title="Anschlussfähigkeit" revid="38028819" stable_revid="38028819" flagged_level="0" flagged_level_text="stable" /><br />
<p pageid="10" ns="0" title="Aussagenlogik" revid="64401094" stable_revid="64401094" flagged_level="0" flagged_level_text="stable" /><br />
<p pageid="11" ns="0" title="Autopoiese" revid="6746470" stable_revid="6746470" flagged_level="0" flagged_level_text="stable" /><br />
<p pageid="12" ns="0" title="A.A." revid="6746471" stable_revid="6746471" flagged_level="0" flagged_level_text="stable" /><br />
<p pageid="13" ns="0" title="Liste der Autoren/A" revid="63870061" stable_revid="63870061" flagged_level="0" flagged_level_text="stable" /><br />
</reviewedpages><br />
</query><br />
</api><br />
</source>}}<br />
<br />
=== list = unreviewedpages ===<br />
<br />
Lists pages which have never been reviewed.<br />
<br />
; Parameters<br />
*<code>urstart</code>: Start listing at this page title.<br />
*<code>urend</code>: Stop listing at this page title.<br />
*<code>urnamespace</code>: The namespaces to enumerate.<br />
*<code>urfilterredir</code>: How to filter for redirects<br />
*<code>urfilterlevel</code>: How to filter by quality (0=sighted,1=quality)<br />
*<code>urlimit</code>: How many total pages to return.<br />
<br />
; Example<br />
{{ApiEx<br />
|desc=List pages in the main namespace that have not been "sighted"<br />
|p1=action=query<br />
|p2=list=unreviewedpages<br />
|p3=urnamespace=0<br />
|p4=urfilterlevel=0<br />
|result=<br />
<source lang="xml"><br />
<api><br />
<query-continue><br />
<unreviewedpages urstart="Arbeitgeberverband_Chemie_und_verwandte_Industrien_für_das_Land_Hessen" /><br />
</query-continue><br />
<query><br />
<unreviewedpages><br />
<p pageid="4762806" ns="0" title="Aaftink" revid="65175047" /><br />
<p pageid="4747500" ns="0" title="Abt RS6" revid="64976429" /><br />
<p pageid="4749877" ns="0" title="Acht Vorlesungen über den Konstruktiven Realismus" revid="65089962" /><br />
<p pageid="4758156" ns="0" title="Alkylglycerole" revid="65169004" /><br />
<p pageid="4719044" ns="0" title="All Riot" revid="64767732" /><br />
<p pageid="4745418" ns="0" title="Allgäu-Panorama-Marathon" revid="64974783" /><br />
<p pageid="4729976" ns="0" title="An- und Einpressen" revid="64742640" /><br />
<p pageid="4742559" ns="0" title="Anjara I. Bartz" revid="64925772" /><br />
<p pageid="4740681" ns="0" title="Anthony Norris Groves" revid="65064712" /><br />
<p pageid="4759964" ns="0" title="Antonino Asta" revid="65169073" /><br />
</unreviewedpages><br />
</query><br />
</api><br />
</source>}}<br />
<br />
=== list = oldreviewedpages ===<br />
<br />
Lists pages that have at some point been reviewed, but for which the most recent revision is not reviewed.<br />
<br />
;Parameters<br />
*<code>orstart</code>: Start listing from this timestamp<br />
*<code>orend</code>: Stop listing at this timestamp.<br />
*<code>ordir</code>: In which direction to list.<br />
*<code>ornamespace</code>: The namespaces to enumerate.<br />
*<code>orfilterredir</code>: How to filter for redirects<br />
*<code>orlimit</code>: How many total pages to return.<br />
<br />
;Example<br />
{{ApiEx<br />
|desc=List pages in the main namespace with recent unreviewed revisions<br />
|p1=action=query<br />
|p2=list=oldreviewedpages<br />
|p3=ornamespace=0<br />
|result=<br />
<source lang="xml"><br />
<api><br />
<query-continue><br />
<oldreviewedpages orstart="2009-09-15T20:23:05Z" /><br />
</query-continue><br />
<query><br />
<oldreviewedpages><br />
<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" /><br />
<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" /><br />
<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" /><br />
<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" /><br />
<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" /><br />
<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" /><br />
<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" /><br />
<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" /><br />
<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" /><br />
<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" /><br />
</oldreviewedpages><br />
</query><br />
</api><br />
</source>}}<br />
<br />
== Limitations ==<br />
*Transclusions across wikis are not stabilized<br />
*External images (aside from Commons) are not stabilized<br />
*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.<br />
*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.<br />
<br />
== Uninstalling ==<br />
*Remove the include line from LocalSettings.php<br />
*Drop the tables in FlaggedRevs.sql. <br />
*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)<br />
*Run <tt>maintenance/refreshLinks.php</tt> from the command line to flush out the stable version links<br />
*Run <tt>maintenance/rebuildFileCache.php 0 overwrite</tt> from the command line if you use $wgFileCache<br />
<br />
== Testing platforms==<br />
*[http://en.labs.wikimedia.org/wiki/Main_Page English]<br />
*[http://de.labs.wikimedia.org/wiki/Hauptseite Deutsch]<br />
*[http://tools.wikimedia.pl/~leinad/testwiki/index.php/Strona_g%C5%82%C3%B3wna Polski]<br />
<br />
== See also ==<br />
* [[Help:Patrolled_edits]]<br />
<br />
==External links==<br />
* [http://blog.wikimedia.org/2008/07/30/quality-assurance-in-an-open-project/ Quality Assurance in an Open Project] – blog.wikimedia.org<br />
* [http://blog.wikible.org/2008/05/29/stable-articles-and-wiki-spam/ Stable Articles and Wiki Spam] – blog.wikible.org<br />
* [[commons:Category:Flagged Revisions|Images of Flagged Revisions]] – Wikimedia Commons<br />
* [[meta:FlaggedRevs|About Flagged Revisions]] – Meta-Wiki<br />
<br />
== Licensing ==<br />
© GPL, Aaron Schulz, Joerg Baach, 2007<br />
[[Category:Revision management extensions]]<br />
[[Category:Rating extensions]]<br />
{{OnWikimedia}}<br />
{{GPL}}</div>
Aaron Schulz