Jump to content

Extensão:FlaggedRevs

From mediawiki.org
This page is a translated version of the page Extension:FlaggedRevs and the translation is 29% complete.
Atenção Atenção: As Revisões Sinalizadas ainda estão muito desajeitadas, complexas e não recomendadas para uso em produção, apesar da marcação “estável”. Esta extensão não tem sido implementada (recém-instalada) em nenhuma wiki da Wikimedia desde 2014. Consulte a revisão da custódia de código para as FlaggedRevs.
Desde 2025, Extension:Approved Revs tem uma finalidade semelhante e é razoavelmente mantida, embora seja muito menos avançada (sem classificações). Outras alternativas estão listadas em Content approval extensions .
Manual de extensões do MediaWiki
Flagged Revisions
Estado da versão: estável
Implementação Interface de usuário, Página especial , Direitos de usuário , Banco de dados , Ajax, API
Descrição Permite o gerenciamento do conteúdo de um artigo pelas classes “editor” e “reviewer”.
Autor(es) Aaron Schulz, Joerg Baach
Política de
compatibilidade
Lançamentos de snapshot junto com o MediaWiki. A master não é retrocompatível.
Modifica o banco
de dados
Sim
  • $wgFlaggedRevsRestrictionLevels
  • $wgFlaggedRevsNamespaces
  • $wgFlaggedRevsTagsAuto
  • $wgFlaggedRevsAutoReview
  • $wgFlaggedRevsHandleIncludes
  • $wgFlaggedRevsTagsRestrictions
  • $wgFlaggedRevsTags
  • $wgFlaggedRevsLowProfile
  • $wgFlaggedRevsAutoconfirm
  • $wgFlaggedRevsOverride
  • $wgFlaggedRevsProtection
  • $wgFlaggedRevsAutopromote
  • $wgSimpleFlaggedRevsUI

  • review
  • validate
  • autoreview
  • autoreviewrestore
  • unreviewedpages
  • stablesettings
  • movestable
Licence GNU GPL (Licença Pública Geral) 2.0 ou superior
Download
Ajuda Help:Extension:FlaggedRevs/pt-br
Traduzir a extensão FlaggedRevs
Problemas Tarefas em aberto · Relatar um bug

A extensão Revisões Sinalizadas (Flagged Revisions) permite que usuários nos grupos Editor e Reviewer possam avaliar revisões em artigos, bem como defini-las como revisão padrão a ser exibida durante a visualização normal de uma página. Dessa forma, o MediaWiki passa a agir também como um Sistema de Gerenciamento de Conteúdo (CMS).

Instalação

  • Baixe e mova a pasta extraída FlaggedRevs ao seu diretório extensions/.
    Desenvolvedores e colaboradores de código, por outro lado, deverão instalar a extensão a partir do Git, usando:
    cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/FlaggedRevs
    
  • Adicione o seguinte código ao final do seu arquivo LocalSettings.php :
    wfLoadExtension( 'FlaggedRevs' );
    
  • Execute o script de atualização que criará automaticamente as tabelas necessárias a essa extensão no banco de dados.
  • Configure conforme o necessário.
  • Yes Concluído – Navegue à página Special:Version em sua wiki para verificar se a instalação da extensão foi bem sucedida.

Configuração inicial

AllowEncodedSlashes

Se você estiver usando o Apache 2.3.12 ou posterior, deverá definir AllowEncodedSlashes como "NoDecode". Adicione a seguinte linha ao seu ‎<VirtualHost> ou, se não tiver um, ao final do seu arquivo httpd.conf:

AllowEncodedSlashes NoDecode

Depois de editar o httpd.conf, o Apache precisará ser reiniciado.

Alterar seu .htaccess (se necessário)

Se você estiver encurtando seus URLs , será necessário adicionar uma exceção ao .htaccess para permitir o uso da API REST .

A FlaggedRevs faz chamadas no rest.php . Por exemplo:

https://[domain]/w/rest.php/flaggedrevs/internal/review/Main_Page

Se as condições do .htaccess não estiverem definidas corretamente quando o URL acima for chamado, a FlaggedRevs tentará literalmente acessar um artigo chamado “W/rest.php/flaggedrevs/internal/review/Main Page”.

Aqui está uma maneira de adicionar uma exceção ao .htaccess, ênfase adicionada:

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/w/rest\.php
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d

RewriteRule ^(.*)$ w/index.php?title=$1 [L,QSA]
RewriteRule ^$ w/index.php [L,QSA]

Promover usuários a revisores

Depois que a FlaggedRevs é instalada pela primeira vez, nenhum usuário pode ver o widget do revisor. Para corrigir isso, conecte-se como burocrata da wiki, vá para Special:UserRights e, em seguida, conceda os direitos de revisão a um ou mais usuários. Os revisores verão o widget do revisor na parte inferior de uma página editável.

Estatísticas de revisão de artigos (opcionais)

Isto se aplica a sistemas semelhantes ao Unix e pressupõe que o MediaWiki esteja instalado em /var/www/mediawiki.

Para obter uma coleção programada de estatísticas de revisão de artigos (exibidas em Special:ValidationStatistics), crie um job cron para executar extensions/FlaggedRevs/maintenance/updateStats.php em um intervalo regular. Execute time php updateStats.php para ver quanto tempo o script leva para ser executado e defina o intervalo do job adequadamente. Por exemplo, para criar um job cron que execute updateStats.php a cada hora, adicione o seguinte à crontab do usuário que está executando o servidor Web (p. ex., www-data):

@hourly php /var/www/mediawiki/extensions/FlaggedRevs/maintenance/updateStats.php

Configuração após a instalação

Direitos de usuário e grupos de usuários

Por padrão, ninguém tem permissão de fazer revisões. Portanto, o primeiro passo é configurar os direitos de usuário.

Grupos de usuário Direitos de usuário
reviewer validate
review
editor
autoreview
unreviewedpages

Direitos de usuário

As FlaggedRevs criam os seguintes novos direitos de usuário:

  • review – usuário pode revisar revisões
  • validate – usuário pode revisar revisões e definir todas as marcações (tags) a todos os níveis
  • autoreview – toda nova revisão feita pelo usuário é marcada automaticamente como vista
  • autoreviewrestore – autorrevisão das reversões feitas pelo usuário.
  • unreviewedpages – usuário pode ver a página Special:UnreviewedPages
  • stablesettings – usuário pode modificar as configurações sobre as revisões estáveis de qualquer página
  • movestable – usuário pode mover páginas com revisões estáveis

Grupos de usuários

As FlaggedRevs criam os seguintes novos grupos de usuários:

  • editor – recebe autoreview, review, unreviewedpages, além dos direitos padrões do MediaWiki autoconfirmed, editsemiprotected
  • reviewer – recebe autoreview, review, unreviewedpages, validate, além dos direitos padrões do MediaWiki autoconfirmed, editsemiprotected
  • autoreview – recebe autoreview

Como atribuir direitos de usuário

Direitos de usuário podem ser atribuídos de duas maneiras:

  • Atribuir direitos a grupos de usuários
    Atribua esses direitos de usuário a grupos de usuários já existentes na LocalSettings.php :
$wgGroupPermissions['sysop']['review'] = true; //allow administrators to review revisions
  • Atribuir direitos a usuários específicos
    Adicione as contas de usuário manualmente aos grupos apropriados via Special:UserRights.
Por padrão:
  • Burocratas podem adicionar e remover revisores
  • Administradores podem adicionar e remover autorrevisores e editores.

Configurações básicas

A FlaggedRevs.php vem com diversas variáveis configuráveis. Elas devem ser configuradas na LocalSettings.php.

  • $wgFlaggedRevsNamespaces – Define quais espaços nominais estarão sujeitos ao processo de revisão. This is an array of integers. See Manual:Constantes de namespaces to see what integer the default namespaces map to and use the defined constants for readability.
  • $wgFlaggedRevsTagsSets the tags and their levels setting.
    Definition
    $wgFlaggedRevsTags is a bidimensional associative array with keys corresponding to each tag name. Values are associative arrays, whose only meaningful/supported element (as of 2025 (MediaWiki 1.43)) is levels, which contains an integer controlling the number of review levels.
    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>.
    By default, the tag is labeled as it appears in the $wgFlaggedRevsTags array. To override this, and show tags for example as their capitalized name, the admins have to edit these pages with the shown content, for example changing the content of MediaWiki:revreview-accuracy
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 Inadequada
1 MediaWiki:revreview-accuracy-1 Revisado
2 MediaWiki:revreview-accuracy-2 Precisa
The resulting setup will be:
tag names level names
Precisão Inadequada Revisado Precisa
  • $wgFlaggedRevsOverrideWhether 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.
  • $wgFlaggedRevsTagsRestrictionsAn 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 ],
    ];
    

User interface

  • $wgSimpleFlaggedRevsUIWhen enabled, a simpler, icon based UI is used. Does not affect the tags shown in edit mode.
  • $wgFlaggedRevsLowProfileThis 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

  • $wgFlaggedRevsAutoReviewIf 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.
  • $wgFlaggedRevsTagsAutoIf wgFlaggedRevsAutoReview 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
    ];
    
Changes in templates 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_TEMPLATE] as [ 'editor' ] or [ 'autoconfirmed' ]

Automatic user promotion

  • $wgFlaggedRevsAutopromoteAn 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

  • $wgFlaggedRevsRestrictionLevels – Níveis de restrição para os direitos autoreview e review. Quando um nível é selecionado para uma página, uma edição feita por um usuário não será revisada automaticamente se o usuário não tiver a permissão especificada. Os níveis são definidos em Special:Stabilization.
  • $wgFlaggedRevsProtection – Defina isso para utilizar a FlaggedRevs somente como um mecanismo de proteção (Help:Pending changes ), em vez da configuração padrão.
  • $wgFlaggedRevsAutoConfirm – Definir quando os usuários podem ter suas próprias edições revisadas automaticamente. Defina como false para desativar.
  • $wgFlaggedRevsHandleIncludes – Se deve usar versões estáveis das predefinições ao renderizar a versão estável de uma página.

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

Revisar uma página

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.[necessário esclarecer] When reviewing, users should look at the whole page, including templates and images. 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.[necessário esclarecer] Blocked users cannot do anything.

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.

Logging

All relevant actions are permanently logged, so everything can be tracked and overseen properly.

  • A log of changes to the stable versioning configuration to pages is logged at Special:Log/stable.

Notes

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 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 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 two list modules corresponding to the special pages for unreviewed pages and "old" reviewed pages.

action=review

Reviews a page.

Parameters
  • revidThe revision ID for which to set the flags
  • tokenA csrf token retrieved through action=query&meta=tokens
  • commentComment for the review (optional)
  • flag_accuracySet the flag named "accuracy" to the specified value; (replace "accuracy" with the flag name to set another flag)
  • unapprove – Se definido, a revisão será reprovada em vez de aprovada
Example
Review revision 12345
Resultado
<api>
  <review revid="12345" />
</api>

action=stabilize

Changes page stabilization settings.

Parameters
  • titleTitle of page to be stabilized
  • reasonReason for stabilization
  • expiryStabilization expiry. Default: infinite
  • reviewWhether to auto-review the page
  • watchWhether to watch the page
  • tokenAn edit token retrieved through action=query&meta=tokens
  • For protection-like configurations ($wgFlaggedRevsProtection=true):
  • protectlevelThe right users must have in order for their edits to not require review.
  • Otherwise ($wgFlaggedRevsProtection=false):
  • defaultDefault revision to show (latest | stable)
    autoreviewRestriction level for the autoreview right (sysop | none). Default: none
Example
Configure the page "Foo" such that only reviewed revisions are shown by default
Resultado
<api>
  <stabilize title="Foo" default="stable" autoreview="none" expiry="infinite" />
</api>

action=flagconfig

Shows information about review flag configuration.

The following parameters are returned for each tag:

  • namethe name of the flag
  • levelsthe number of possible levels the flag has (not counting the "unreviewed" level)

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
Resultado
<api>
  <flagconfig>
    <tag name="value" levels="3" tier1="1" />
  </flagconfig>
</api>

list=unreviewedpages

Lists pages which have never been reviewed.

Parameters
  • urstartStart listing at this page title.
  • urendStop listing at this page title.
  • urnamespaceThe namespaces to enumerate.
  • urfilterredirHow to filter for redirects
  • urfilterlevelHow to filter by quality (0=sighted,1=quality)
  • urlimitHow many total pages to return.
Example
List pages in the main namespace that have not been "sighted"
Resultado
<api>
  <query-continue>
    <unreviewedpages urstart="Arbeitgeberverband_Chemie_und_verwandte_Industrien_für_das_Land_Hessen" />
  </query-continue>
  <query>
    <unreviewedpages>
      <p pageid="4762806" ns="0" title="Aaftink" revid="65175047" />
      <p pageid="4747500" ns="0" title="Abt RS6" revid="64976429" />
      <p pageid="4749877" ns="0" title="Acht Vorlesungen über den Konstruktiven Realismus" revid="65089962" />
      <p pageid="4758156" ns="0" title="Alkylglycerole" revid="65169004" />
      <p pageid="4719044" ns="0" title="All Riot" revid="64767732" />
      <p pageid="4745418" ns="0" title="Allgäu-Panorama-Marathon" revid="64974783" />
      <p pageid="4729976" ns="0" title="An- und Einpressen" revid="64742640" />
      <p pageid="4742559" ns="0" title="Anjara I. Bartz" revid="64925772" />
      <p pageid="4740681" ns="0" title="Anthony Norris Groves" revid="65064712" />
      <p pageid="4759964" ns="0" title="Antonino Asta" revid="65169073" />
    </unreviewedpages>
  </query>
</api>

list=oldreviewedpages

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

Parameters
  • orstartStart listing from this timestamp
  • orendStop listing at this timestamp.
  • ordirIn which direction to list.
  • ornamespaceThe namespaces to enumerate.
  • orfilterredirHow to filter for redirects
  • orlimitHow many total pages to return.
Example
List pages in the main namespace with recent unreviewed revisions
Resultado
<api>
  <query-continue>
    <oldreviewedpages orstart="2009-09-15T20:23:05Z" />
  </query-continue>
  <query>
    <oldreviewedpages>
      <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" />
      <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" />
      <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" />
      <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" />
      <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" />
      <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" />
      <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" />
      <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" />
      <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" />
      <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" />
    </oldreviewedpages>
  </query>
</api>

list=configuredpages

Enumerate all pages that have custom review configurations on non-protection configurations (ie. $wgFlaggedRevsProtection=false).

Parameters
  • cpstartStart listing from this timestamp
  • cpendStop listing at this timestamp.
  • cpdirIn which direction to list.
  • cpnamespaceThe namespaces to enumerate.
  • cpdefaultThe default page view version.
  • cpautoreviewReview/autoreview restriction level.
  • cplimitHow many total pages to return.
Example
Enumerate all pages that have custom review configurations.
Resultado
<?xml version="1.0"?>
<api batchcomplete="">
  <continue cpstart="116" continue="-||" />
  <query>
    <configuredpages>
      <p pageid="14" ns="0" title="Aleksis Kivi" last_revid="23622851" stable_revid="23622851" stable_is_default="1" autoreview="" expiry="2026-10-17T15:17:09Z" />
      <p pageid="75" ns="0" title="Albert Einstein" last_revid="23633099" stable_revid="23633099" stable_is_default="1" autoreview="" expiry="2025-10-23T09:35:04Z" />
      <p pageid="100" ns="0" title="Buddhalaisuus" last_revid="23639747" stable_revid="23635003" stable_is_default="1" autoreview="" expiry="2026-04-23T11:23:58Z" />
    </configuredpages>
  </query>
</api>

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

Uninstalling

  1. Remove the require_once or wfLoadExtension line from LocalSettings.php
  2. Drop the tables in FlaggedRevs.sql
  3. 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 of FlaggedRevs used these)
  4. Run maintenance/refreshLinks.php from the command line to flush out the stable version links
  5. Run maintenance/rebuildFileCache.php 0 overwrite from the command line if you use $wgFileCache

Testing platforms

See also

Direitos autorais

© Aaron Schulz, Joerg Baach, 2007