Extension:Approved Revs
ApprovedRevs est une extension qui permet aux administrateurs de marquer une certaine révision d'une page comme étant "approuvée". La révision approuvée est celle présentée lorsque les utilisateurs affichent la page à son URL principale.
Même si une révision est approuvée, la plupart des extensions qui récupèrent le contenu des pages obtiendront toujours la dernière révision, et non la révision approuvée (si les deux sont différentes). Cependant, les extensions qui obtiennent des "données" spécifiques à partir des pages, comme Cargo et Semantic MediaWiki affiche heureusement les données correctes (c'est à dire approuvées).
Téléchargement
Vous pouvez télécharger ici le code de Approved Revs au format .zip .
Vous pouvez aussi télécharger le code directement via Git depuis le référentiel de code source de MediaWiki. À partir d'une ligne de commande, vous pouvez appeler les éléments suivants :
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/ApprovedRevs.git
Pour afficher le code en ligne, y compris l'historique des versions pour chaque fichier, allez à phab:diffusion/EARE/browse/master/.
Installation
Pour installer cette extension, créez un répertoire 'ApprovedRevs
' (en extrayant un fichier compressé ou en le téléchargeant via Git) et placez ce répertoire dans le répertoire principal de MediaWiki 'extensions'.
Ensuite, dans le fichier 'LocalSettings.php
', ajoutez la ligne suivante :
wfLoadExtension( 'ApprovedRevs' );
Vous devrez également installer deux tables de base de données pour cette extension : "approved_revs" et "approved_revs_files".
Vous pouvez le faire de deux façons : exécutez le script "update.php " dans le répertoire /maintenance de MediaWiki, ou appelez le SQL directement dans votre base de données - vous pouvez le trouver dans les fichiers ApprovedRevs.sql
et ApprovedFiles.sql
, tous deux situés dans le répertoire /sql de l'extension.
Enfin, les droits utilisateur suivants sont définis pour les versions approuvées :
- '
approverevisions
' - Autorisation d'approuver et d'annuler les révisions de pages. Par défaut, il est donné à tous les membres du groupe 'sysop'. - '
viewlinktolatest
' - L'autorisation de voir une note en haut des pages qui ont une révision approuvée, expliquant que ce que l'utilisateur voit n'est pas nécessairement la dernière révision. Par défaut, il est donné à tout le monde (par exemple, '*'). - '
viewapprover
' - L'autorisation de voir une autre note en haut des pages qui ont une révision approuvée, indiquant qui l'a approuvée en dernier. Par défaut, il est donné à tous les membres du groupe 'sysop'.
Vous pouvez modifier l'ensemble des utilisateurs disposant de l'une de ces autorisations. Par exemple, pour que le lien "afficher la révision la plus récente" s'affiche uniquement pour les administrateurs, vous pouvez ajouter la commande suivante, après la commande de chargement de l'extension:
$wgGroupPermissions['*']['viewlinktolatest'] = false;
$wgGroupPermissions['sysop']['viewlinktolatest'] = true;
Auteurs
Approved Revs a été écrit par Yaron Koren. D'importantes contributions au code ont également été faites par Raimond Spekking, Siebrand Mazeland, Jeroen De Dauw, Eli Handel, Andrew Engelbrecht, hashar, Anomie, Mark Hershberger, Flo, Addshore, James Montalvo, Fodagus, Kris Field et d'autres personnes.
Utilisation
Une fois l'extension installée, toute personne avec la permission de 'approverevisions
' verra un lien qui lit "(approuve)" sur chaque ligne d'une page d'historique de page.
Cliquer sur ce lien définira cette révision comme celle approuvée.
Si vous revenez ensuite à la page d'historique, vous verrez un lien "approuver" à côté de chaque autre révision, ainsi qu'un lien "désapprouver" pour la révision approuvée ; la ligne de la révision approuvée aura également une étoile à côté.
Le fait de cliquer sur "approuver" pour toute autre révision rétablira l'approbation de cette révision ; lorsque vous cliquez sur "désapprouver", cela signifie qu'il n'y aura plus de révision approuvée pour cette page.
Les utilisateurs sans l'autorisation 'approverevisions
' ne verront rien de spécial dans la page d'historique, autre qu'une icône en étoile sur la ligne de la révision approuvée.
Par défaut, si un utilisateur avec l'autorisation 'approverevisions
' effectue une modification sur une page qui a déjà une révision approuvée, cette modification, c'est-à-dire la dernière révision de la page, est automatiquement marquée comme approuvée.
En revanche, si une page n'a pas de révision approuvée (cela inclut bien sûr les nouvelles pages), les approbations automatiques ne seront pas appliquées.
The one exception to this is if $egApprovedRevsBlankIfUnapproved is set to true
for the wiki; if it is, any edit by an approverevisions
-permitted user to an unapproved page will also automatically become approved, thus turning that page non-blank.
Vous pouvez éliminer les approbations automatiques, ce qui nécessite que chaque approbation soit effectuée manuellement, en ajoutant la commande suivante dans LocalSettings.php
après l'appel du chargement de l'extension Approved Revs :
$egApprovedRevsAutomaticApprovals = false;
Une logique similaire s'applique aux nouvelles versions des fichiers ; ces approbations automatiques peuvent également être désactivées automatiquement avec la commande suivante :
$egApprovedRevsFileAutomaticApprovals = false;
À l'inverse, si vous initialise "$egApprovedRevsBlankIfUnapproved
" ou "$egApprovedRevsBlankFileIfUnapproved
" à true
dans LocalSettings.php
(voir ci-dessous), chaque modification de page ou de fichier effectuée par un utilisateur ayant les droits "approverevisions
" devient approuvée - même les modifications apportées aux pages et aux fichiers qui n'ont pas de version approuvée.
Les approbations de révision manuelles et les non-approbations sont stockées dans le journal des approbations ; bien que les approbations qui se produisent automatiquement, à la suite d'une personne ayant le pouvoir d'approbation de modifier une page, ne le sont pas.
Special:ApprovedRevs page
Approved Revs définit la page spéciale "Special:ApprovedRevs
" qui montre quatre listes séparées :
- pages dont la révision approuvée n'est pas la dernière
- toutes les pages ayant une révision approuvée
- "pages non approuvées" (toutes les pages sans révision approuvée)
- les pages pour lesquelles les approbations ne sont pas valides (par exemple, les pages d'un espace de noms, ce qui était précédemment autorisé mais ne l'est plus).
Pour la troisième liste, des pages sans révision approuvée, vous pouvez éventuellement inclure un lien pour chaque page pour marquer la dernière révision de cette page comme approuvée.
Pour inclure de tels liens, ajoutez ce qui suit à LocalSettings.php
:
$egApprovedRevsShowApproveLatest = true;
Stockage des informations d'approbation
Les renseignements sur les approbations - qui les a faites et quand elles ont été faites - sont conservés dans le journal "Approbation de révision", qui peut être consulté à la page Special:Log. Les approbations récentes sont également indiquées dans Special:RecentChanges.
Affichage des pages non approuvées comme vides
Si vous le souhaitez, vous pouvez avoir les pages qui n'ont pas de révision approuvée affichées comme vides - les utilisateurs pourront toujours voir toutes les révisions s'ils cliquent sur l'onglet "historique", mais l'affichage principal sera une page vide.
Pour ce faire, ajoutez simplement la ligne suivante à LocalSettings.php
, n'importe où après le chargement de l'extension Approved Revs :
$egApprovedRevsBlankIfUnapproved = true;
De même, vous pouvez définir des fichiers sans version approuvée pour qu'ils ne s'affichent pas lorsqu'ils sont intégrés à d'autres pages, en ajoutant la ligne suivante :
$egApprovedRevsBlankFileIfUnapproved = true;
Affichage des pages non approuvées
Par défaut, les pages sans révision approuvée apparaissent simplement normalement, sans indication de leur état.
Vous pouvez faire en sorte que ces pages affichent un message en haut indiquant : « Ceci est la dernière révision de cette page ; elle n'a pas de révision approuvée. » Pour ce faire, ajoutez la ligne suivante à LocalSettings.php
:
$egApprovedRevsShowNotApprovedMessage = true;
Marquer les pages comme étant approuvées
Certaines pages wiki peuvent avoir leurs révisions approuvées, tandis que d'autres ne le peuvent pas ; ceci est déterminé de trois manières.
Définir toutes les pages d'un espace de noms comme étant approuvables
Il existe une variable globale, $egApprovedRevsEnabledNamespaces
, qui détermine quels espaces de noms sont gérés par l'extension.
Cette variable est un tableau, et par défaut elle contient six espaces de noms : NS_MAIN
(qui vaut 0, l'espace de noms principal), NS_USER
(2, pages utilisateur), NS_FILE
(6, fichiers), NS_TEMPLATE
(10, modèles), NS_HELP
(12, pages d'aide) et NS_PROJECT
(4, l'espace de noms du projet, qui a généralement le même nom que le wiki).
Vous pouvez ajouter des espaces de noms supplémentaires à cet ensemble - après l'inclusion des versions approuvées dans LocalSettings.php, ajoutez quelque chose comme :
$egApprovedRevsEnabledNamespaces[NS_USER_TALK] = true;
Il n'est pas recommandé d'ajouter les espaces de noms Category ou MediaWiki à ce tableau, car, en raison de leur implémentation spéciale dans MediaWiki, les approbations ne fonctionneront pas correctement sur ces pages.
Pour supprimer les espaces de noms par défaut comme approuvés, définissez leur valeur sur false
.
Par exemple, pour rendre les fichiers non approuvés, ajoutez ce qui suit :
$egApprovedRevsEnabledNamespaces[NS_FILE] = false;
Rendre les pages approuvées avec #approvable_by
Approved Revs définit la fonction d'analyseur #approvable_by
, qui vous permet de définir certaines pages comme étant approuvables par certains utilisateurs et groupes individuels.
Par exemple, l'appel suivant permettrait à l'utilisateur Alice Jones, ainsi qu'aux utilisateurs des groupes Bureaucrat et Sysop, d'approuver la page sur laquelle il a été appelé :
{{#approvable_by: users = Alice Jones | groups = bureaucrat,sysop }}
Notez que, si un utilisateur autorisé à modifier une page à cause de cette fonction d'analyse approuve une révision avant que cette fonction ait été ajoutée, alors il perdra la possibilité d'effectuer d'autres approbations (puisque la révision approuvée ne contient pas cet appel), jusqu'à ce qu'un administrateur arrive et annule son action.
Définition des pages approuvées par un mot magique
Les pages individuelles ne faisant pas partie de l'un des espaces de noms spécifiés peuvent également être rendues approuvables, en ajoutant le __APPROVEDREVS__
mot magique n'importe où dans la page.
Il est recommandé d'ajouter ce mot magique aux pages via un modèle.
Si __APPROVEDREVS__
est ajouté directement à une page, veillez à ne pas approuver une révision de la page avant que cette chaîne n'ait été ajoutée ; cela peut conduire à un comportement inattendu.
Permettre aux non-administrateurs de "posséder" des pages
Parfois, il est utile de permettre à ceux qui n'ont pas les droits généraux 'approverevisions
' de pouvoir approuver les révisions de certaines pages - en d'autres termes, d'avoir la main sur certaines pages.
Un exemple évident sont les pages utilisateur - il est logique de permettre à chaque utilisateur de pouvoir approuver les révisions sur leur propre page utilisateur.
Pour les espaces de noms autres que "Utilisateur", vous pouvez choisir de désigner l'utilisateur qui a initialement créé une page dans cet espace de noms comme propriétaire de la page; il dispose alors de l'autorisation d'approbation de révision pour cette page.
Pour avoir la main sur un espace de noms spécifique, vous devez ajouter cet espace de noms à la variable $egApprovedRevsSelfOwnedNamespaces
Pour permettre aux utilisateurs de "posséder", c'est-à-dire être en mesure d'approuver, les pages dans les espaces de noms principaux et utilisateurs, par exemple, vous devez ajouter ce qui suit à LocalSettings.php:
$egApprovedRevsSelfOwnedNamespaces = array( NS_MAIN, NS_USER );
Un espace de noms doit appartenir à $egApprovedRevsEnabledNamespaces
avant de pouvoir être ajouté à $egApprovedRevsSelfOwnedNamespaces
.
Affichage des informations d'approbation
Les révisions approuvées définissent cinq "mots magiques" qui peuvent être utilisés pour afficher des informations d'approbation sur une page spécifique. Ce sont :
APPROVALYEAR
- l'année de la dernière approbation de la pageAPPROVALMONTH
- mois de la dernière approbation de la pageAPPROVALDAY
- le jour du mois de la dernière approbation de la pageAPPROVALTIMESTAMP
- horodatage complet de la date/heure de la dernière approbation de la pageAPPROVALUSER
- l'utilisateur qui a approuvé la page pour la dernière fois.
Les cinq peuvent être simplement appelés par eux-mêmes (qui renverront ces informations pour la page sur laquelle l'appel est situé), ou appelés avec un nom de page passé (qui renverront ces informations pour la page spécifiée).
Ainsi, par exemple, dans la page "Main Page", l'appel {{APPROVALYEAR}}
affichera l'année de la dernière approbation de la page "Main Page", tandis que l'appel {{APPROVALYEAR:Employees list}}
affichera l'année de la dernière page "Liste des employés" approuvé.
Si l'un de ces mots magiques est appelé pour une page qui n'a pas de révision approuvée, ou pour une page qui n'existe pas, ils n'afficheront tout simplement rien.
Les quatre premiers de ces mots magiques peuvent également être appelés pour des fichiers; le dernier, APPROVALUSER, ne fonctionne pas.
Notez que, si vous avez commencé à utiliser les versions approuvées avant la version 1.4, les quatre premiers mots magiques, qui ont tous à voir avec l'heure à laquelle la révision a été effectuée, afficheront très probablement un blanc pour toute page dont la révision a été approuvée alors que les versions approuvées étaient encore sur une version antérieure.
API
Approved Revs définit une action API, "approuver", qui vous permet soit d'approuver ou (si le paramètre supplémentaire "désapprouver" est ajouté) d'annuler toute révision via l'API MediaWiki. Voir here pour une explication de la syntaxe de cette API.
Marquer des pages comme étant approuvées
Pour les pages qui n'ont pas encore de révision approuvée, vous pouvez approuver automatiquement leur dernière révision afin d'initialiser rapidement leur contenu.
Pour cela, vous pouvez utiliser le script de ligne de commande 'ApprovedRevs/maintenance/approveAllPages.php
'.
Ce script approuve la dernière révision de toutes les pages qui peuvent être approuvées mais qui n'ont pas de révision approuvée.
(Le script a plusieurs options, dont une qui vous permet de gérer les pages qui ont déjà une révision approuvée.)
Approbation de fichiers
Vous pouvez également approuver des révisions de fichiers avec des révisions approuvées. Il convient de noter que seules les révisions apportées au dossier réel peuvent être approuvées ; les révisions apportées au wikitexte des pages de fichiers ne le sont pas. Par conséquent, l'approbation des fichiers ne se fait pas en cliquant sur le lien "afficher l'historique" en haut à droite de la page du fichier. Au lieu de cela, faites défiler la section "Historique des fichiers" vers le bas de la page du fichier, et cliquez sur "approuver" à droite de la table d'historique des fichiers.
Lorsqu'une version d'une image est approuvée, cette version s'affiche lorsque l'image est incluse sur d'autres pages. Pour les téléchargements autres que des images (p. ex., PDF), les liens directs vers le fichier seront dirigés vers la version approuvée, et non vers la dernière version.
Just like the approveAllPages.php
script, there is another script, approveAllFiles.php
, that exists specifically for file approvals.
Historique des versions
Approved Revs est actuellement à la version 2.1. Voir l'intégralité de l'historique des versions.
Problèmes connus
- Pour les utilisateurs anonymes, les versions approuvées ne fonctionnent pas avec l'extension AccessControl - l'approbation d'une révision entraîne une erreur Deny_action car ils n'ont pas accès à l'historique.
Contribution au projet
Problèmes connus et demandes d’améliorations
Envoyez des rapports de bogues et des demandes à Yaron Koren (yaron57gmail.com).
Contribuer au projet à l'aide de patchs
Si vous avez trouvé un bogue et que vous l'avez corrigé, ou si vous avez écrit du code pour une nouvelle fonctionnalité, veuillez soit faire un commit Git pour celui-ci, soit créer un patch en allant dans le répertoire "ApprovedRevs
", et en tapant :
git diff > descriptivename.patch
Si vous créez un patch, veuillez l'envoyer avec une description à Yaron Koren.
Traductions
La traduction de Approved Revs se fait au moyen de translatewiki.net. La traduction de cette extension se trouve ici : https://translatewiki.net/w/?title=Special:Translate&group=ext-approvedrevs. Pour ajouter des valeurs de langue ou modifier des valeurs existantes, vous devez créer un compte sur translatewiki.net, puis demander l'autorisation aux administrateurs de traduire une ou plusieurs langues sur cette page (ce processus est très simple). Une fois que vous avez l'autorisation pour une langue donnée, vous pouvez vous connecter et ajouter ou modifier les messages que vous souhaitez dans cette langue.
Voir aussi
Cette extension est incluse dans les fermes de wikis ou les hôtes suivants et / ou les paquets : Cette liste ne fait pas autorité. Certaines fermes de wikis ou hôtes et / ou paquets peuvent contenir cette extension même s'ils ne sont pas listés ici. Vérifiez toujours cela avec votre ferme de wikis ou votre hôte ou votre paquet avant de confirmer. |
- Stable extensions/fr
- Hook extensions/fr
- Extensions supporting Composer/fr
- GPL licensed extensions/fr
- Extensions in Wikimedia version control/fr
- Extensions which add rights/fr
- AdminLinks extensions/fr
- ArticleFromTitle extensions/fr
- ArticleRevisionViewCustom extensions/fr
- ArticleViewHeader extensions/fr
- BeforeParserFetchFileAndTitle extensions/fr
- BeforeParserFetchTemplateRevisionRecord extensions/fr
- DiffTools extensions/fr
- DisplayOldSubtitle extensions/fr
- FileDeleteComplete extensions/fr
- GetMagicVariableIDs extensions/fr
- ImagePageFileHistoryLine extensions/fr
- ImagePageFindFile extensions/fr
- LoadExtensionSchemaUpdates extensions/fr
- MpdfGetArticle extensions/fr
- OutputPageBodyAttributes extensions/fr
- PageDeleteComplete extensions/fr
- PageForms::HTMLBeforeForm extensions/fr
- PageHistoryLineEnding extensions/fr
- PageMoveComplete extensions/fr
- PageSaveComplete extensions/fr
- ParserAfterTidy extensions/fr
- ParserBeforeInternalParse extensions/fr
- ParserFirstCallInit extensions/fr
- ParserGetVariableValueSwitch extensions/fr
- RevisionDataUpdates extensions/fr
- SearchResultInitFromTitle extensions/fr
- SkinTemplateNavigation::Universal extensions/fr
- TitleGetEditNotices extensions/fr
- UploadComplete extensions/fr
- WgQueryPages extensions/fr
- All extensions/fr
- Extensions included in Canasta/fr
- Extensions included in Miraheze/fr
- Extensions included in MyWikis/fr
- Extensions included in ProWiki/fr
- Extensions included in semantic::core/fr
- Extensions included in WikiForge/fr
- Revision management extensions/fr