Erweiterung:Approved Revs
Approved Revs ist eine Erweiterung die Administratoren bestimmte Revisionsstände einer Seiten als "bestätigt" markieren lassen kann. Die bestätigte Revision ist die einzige angezeigte, wenn Benutzer die Seite über den Haupt-URL ansehen.
Auch wenn eine Revision bestätigt wurde, werden die meisten Erweiterungen den Seiteninhalt der letzten Revision anzeigen und nicht die bestätigte (wenn sich beide unterscheiden). Erweiterungen, die bestimmte Daten von Seiten erhalten, wie Cargo und Semantic MediaWiki , zeigen jedoch glücklicherweise die korrekten (d. h. genehmigten) Daten an.
Herunterladen
Man kann den Approved Revs Code als ZIP unter https://github.com/wikimedia/mediawiki-extensions-ApprovedRevs/archive/2.2.1.zip herunterladen.
Du kannst auch den Code direkt mit Git vom MediaWiki-Quellcode-Repositorium herunterladen. In der Kommandozeile gibt man Folgendes ein:
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/ApprovedRevs.git
Um den Code online inklusive Versionsverlauf für jede Datei zu sehen, geht man zu phab:diffusion/EARE/browse/master/.
Installation
Um diese Erweiterung zu installieren, erstelle das Verzeichnis ApprovedRevs
(entweder beim Entpacken oder downloaden über Git) und setze das Verzeichnis in das Hauptverzeichnis extensions von MediaWiki.
Schreibe dann folgendes in die Datei LocalSettings.php
:
wfLoadExtension( 'ApprovedRevs' );
Man muss dann noch zwei Datenbanktabellen für die Erweiterungen approved_revs und approved_revs_files installieren.
Man kann dies auf eine von zwei Möglichkeiten tun: Entweder startet man das Skript update.php im MediaWiki-Verzeichnis /maintenance oder man ruft SQL direkt in seiner Datenbank auf - man findet es in den Dateien ApprovedRevs.sql
und ApprovedFiles.sql
, beide im Verzeichnis /sql der Erweiterung.
Schlussendlich finden sich folgende Special:MyLanguage/Manual:User rights definiert für Approved Revs:
- '
approverevisions
' - Die Erlaubnis Revisionen für Seiten zu bestätigen bzw. wieder zu entziehen. Grundsätzlich sind diese den Mitglieder der Gruppe 'sysop" erteilt. - '
viewlinktolatest
' - Die Erlaubnis/Befähigung Notizen oben auf der Seite zu sehen, dass diese eine Revision hat. Diese Notiz besagt, dass die angezeigte Version nicht die unbedingt die letzte Version sein muss. Als Grundeinstellung für jeden erteilt (z.B. '*'). - '
viewapprover
' - Die Erlaubnis Notizen anderer oben auf der Seite zu sehen, das die Revision bestätigt wurde und wer dies freigegeben hatte. Grundeinstellung ist allen Mitgliedern der Gruppe 'sysop' gegeben.
Du kannst einstellen welche Benutzer diese Rechte haben sollen. Um zum Beispiel das Recht "Letzte Revision sehen" zeigt der Link nur für Administrotoren, könntes Du folgendes unterhalb der Einbindung von Approved Revs hinzufügen:
$wgGroupPermissions['*']['viewlinktolatest'] = false;
$wgGroupPermissions['sysop']['viewlinktolatest'] = true;
Autoren
Approved Reves wurde von Yaron Koren geschrieben. Wichtige Code-Beiträge waren von Raimond Spekking, Siebrand Mazeland, Jeroen De Dauw, Eli Handel, Andrew Engelbrecht, hashar, Anomie, Mark Hershberger, Flo, Addshore, James Montalvo, Fodagus, Kris Field und anderen.
Verwendung
Wenn die Erweiterung installiert, kann jeder mit der approverevisions
Befähgigung einen Link sehen, der in der Spalte der Versionsseite "(approved") anzeigt.
Durch Auswahl dieses Links wird die Revision als bestätigt gesetzt.
Wenn man dann zurück zur seite Versionsgeschichte geht, sieht man einen "bestätigen"-Link neben jeder anderen Revision zusammen mit einem "ablehnen"-Link für die bereits bestätigte Revision; die Spalte der bestätigten Revisionen wird daneben einen Stern anzeigen.
Wenn "bestätigen" irgend einer anderen Revision angeclickt wird, setzt die Bestätigung jeweils zurück; wenn "ablehnen" ausgewählt wird, bedeutet dies, dass es nicht länger eine bestätigte Revision dieser Seite existiert.
Benutzer ohne approverevisions
Recht werden nichts Spezielles in der Versionsgeschichte sehen, ausser einen Stern bei der bestätigten Revision.
Durch Grundeinstellung: Wenn ein Benutzer mit der Berechtigung approverevisions
eine Änderung auf der Seite durchführt, die bereits eine bestätigte Revision hat, die z.B. die letzte Revision der Seite ändert, setzt diese automatisch als bestätigt.
Wenn im Gegensatz dazu eine Seite keine bestätigte Revision hat (dies beinhaltet selbstverständlich auch neue Seiten), werden keine automatische Bestätigtungen durchgeführt.
Die einzige Ausnahme ist, wenn $egApprovedRevsBlankIfUnapproved für das Wiki auf true
gesetzt ist; in diesem Fall wird jede Bearbeitung einer nicht genehmigten Seite durch einen approverevisions
-genehmigten Benutzer automatisch auch genehmigt, wodurch die Seite nicht mehr leer ist.
Man kann auch automatisierte Bestätigungen ausschalten, wobei dann jede Bestätigung manuell durch Hinzufügen in der LocalSettings.php
unterhalb des eingefügten Abschnittes von Approved Revs, durchgeführt werden muss.
$egApprovedRevsAutomaticApprovals = false;
Eine ähnliche Logik gilt sinngemäss für neue Versionen von Dateien; diese automatisierte Bestätigung kann auch automatisch durch einfügen folgender Zeile ausgeschaltet werden:
$egApprovedRevsFileAutomaticApprovals = false;
Umgekehrt, wenn "$egApprovedRevsBlankIfUnapproved
" oder "$egApprovedRevsBlankFileIfUnapproved
" in LocalSettings.php
auf true gesetzt ist (siehe unten), wird jede Bearbeitung von Seiten und/oder Dateien, die von einem Benutzer mit der Berechtigung 'approverevisions
' vorgenommen wird, genehmigt – sogar Bearbeitungen von Seiten/Dateien, die keine genehmigte Revision haben.
Manuelle Änderungsgenehmigungen und -aufhebungen werden im Genehmigungsprotokoll gespeichert; Genehmigungen, die automatisch erfolgen, weil jemand mit Genehmigungsbefugnis eine Seite bearbeitet, werden jedoch nicht gespeichert.
Special:ApprovedRevs page
Approved Revs legt eine Spezialseite an, "Special:ApprovedRevs
" welche vier separate Listen aufzeigt:
- Alle Seiten, deren bestätigte Version nicht die Neueste ist
- Alle Seiten mit bestätigten Versionen
- Seiten mit unbestätigten Versionen (alle Seiten ohne bestätigter Version)
- Seiten mit ungültigen Bestätigungen (sowohl Seiten im Namespace die zuvor nicht länger bestätigt waren)
Für die dritte Liste von Seiten mit nicht bestätigten Versionen, kann man wahlweise einen Link auf jeder Seite integrieren, dass die letzte Version bestätigt wurde.
Um solch einen Link einzufügen, fügt man folgendes zu LocalSettings.php
ein:
$egApprovedRevsShowApproveLatest = true;
Auflistung bestätigter Informationen
Informationen über Bestätigungen - wer sie gemacht hatte und wann - sind in "Letze Änderungungen"-Log abgelegt, welche auf der Seite Special:Log (Letzte Änderungen) angesehen werden können. Letzte Bestätigungen werden unter Special:RecentChanges gezeigt.
Unbestätigte Seiten als leere Seite anzeigen
Wenn gewünscht, können Seiten ohne genehmigte Revisionen als leer anzeigen lassen – die Benutzer können dann immer noch alle Revisionen sehen, wenn sie auf die Registerkarte „Historie“ klicken, aber die Hauptanzeige wird eine leere Seite sein.
Dazu einfach die folgende Zeile zu LocalSettings.php
hinzufügen, und zwar irgendwo nach der Einbindung von Approved Revs:
$egApprovedRevsBlankIfUnapproved = true;
Auf ähnliche Weise kann man festlegen, dass Dateien ohne genehmigte Version nicht angezeigt werden, wenn sie in andere Seiten eingebettet werden, indem die folgende Zeile hinzugefügt wird:
$egApprovedRevsBlankFileIfUnapproved = true;
Anzeige unbestätigter Seiten
Standardmäßig werden Seiten, deren Revision nicht genehmigt wurde, einfach normal angezeigt, ohne Angabe ihres Status.
Es ist möglich, diese Seiten mit einer Meldung zu versehen, die lautet: „Dies ist die letzte Revision dieser Seite; es existiert keine genehmigte Revision.“ Füge dazu die folgende Zeile in LocalSettings.php
:
$egApprovedRevsShowNotApprovedMessage = true;
Seiten als bestätigt setzen
Für einige Wiki-Seiten können Änderungen genehmigt werden, für andere nicht; dies wird auf drei Arten bestimmt.
Einstellung aller Seiten in einem Namensraum als genehmigungsfähig
Die globale Variable $egApprovedRevsEnabledNamespaces
bestimmt, welche Namespaces von der Erweiterung behandelt werden.
Diese Variable ist ein Array und enthält standardmäßig sechs Namespaces: NS_MAIN
(definiert als 0, der Artikelnamensraum), NS_USER
(2, Benutzerseiten), NS_FILE
(6, Dateien), NS_TEMPLATE
(10, Vorlagen), NS_HELP
(12, Hilfsseiten) und NS_PROJECT
(4, der Projektnamespace, der normalerweise den gleichen Namen wie das Wiki hat).
Nach der Aufnahme von Approved Revs in LocalSettings.php können weitere Namespaces hinzugefügt werden, ungefähr so:
$egApprovedRevsEnabledNamespaces[NS_USER_TALK] = true;
Es wird nicht empfohlen, die Kategorien- oder MediaWiki-Namenräume in dieses Array hinzuzufügen, da aufgrund ihrer speziellen Implementierung in MediaWiki die Genehmigungen auf diesen Seiten nicht korrekt funktionieren.
Um Standard-Namensräume als genehmigungsfähig zu entfernen, setze ihren Wert auf false. Um die Dateien beispielsweise nicht zu genehmigen, füge Folgendes hinzu:
$egApprovedRevsEnabledNamespaces[NS_FILE] = false;
Seiten genehmigungsfähig machen mit #approvable_by
Approved Revs definiert die Parserfunktion #approvable_by
, mit der Sie bestimmte Seiten als genehmigungsfähig für bestimmte Benutzer und Gruppen definieren können.
Der folgende Aufruf würde beispielsweise der Benutzerin Alice Jones sowie den Benutzern der Gruppen Bureaucrat und Sysop erlauben, die aufgerufene Seite zu genehmigen:
{{#approvable_by: users = Alice Jones | groups = bureaucrat,sysop }}
Wenn ein Benutzer, der eine Seite aufgrund dieser Parserfunktion bearbeiten darf, eine Revision genehmigt, bevor diese Funktion hinzugefügt wurde, verliert er die Möglichkeit, weitere Genehmigungen zu erteilen (da die genehmigte Revision diesen Aufruf nicht enthält), bis ein Administrator eingreift und seine Aktion rückgängig macht.
Seiten mit Magic Word zur Genehmigung markieren
Individual pages not within one of the specified namespaces can also be made approvable, by adding the __APPROVEDREVS__
magic word anywhere within the page.
It is recommended to add in this magic word to pages via a template.
If __APPROVEDREVS__
is added directly to a page, just be careful not to approve a revision of the page from before that string was added; this could lead to unexpected behavior.
Letting non-administrators "own" pages
Sometimes it's helpful to allow those without the general 'approverevisions
' permission to be able to approve revisions of certain pages - in other words, to have ownership of certain pages.
An obvious example is user pages - it makes sense to allow each user to be able to approve revisions on their own user pages.
For namespaces other than "User", you can choose to have the user who originally created any page in that namespace be designated as the page owner, who then has revision-approval permission for that page.
To have this kind of "ownership" for a specific namespace, you need to add the namespace to the variable $egApprovedRevsSelfOwnedNamespaces
.
To allow users to "own", i.e. be able to approve, pages in the main and user namespaces, for instance, you should add the following to LocalSettings.php:
$egApprovedRevsSelfOwnedNamespaces = array( NS_MAIN, NS_USER );
A namespace needs to belong to $egApprovedRevsEnabledNamespaces
before it can be added to $egApprovedRevsSelfOwnedNamespaces
.
Anzeige von Informationen um Bestätigungen
Approved Revs defines five "magic words" that can be used to display approval information about a specific page (or file). Diese sind:
APPROVALYEAR
- the year in which the page was last approvedAPPROVALMONTH
- the month in which the page was last approvedAPPROVALDAY
- the day of the month in which the page was last approvedAPPROVALTIMESTAMP
- the full timestamp of the date/time in which the page was last approvedAPPROVALUSER
- the user who last approved the page.
All five can be simply called by themselves (which will return that information for the page on which the call is located), or called with a page name passed in (which will return that information for the specified page).
So, for example, in the page "Main Page", the call {{APPROVALYEAR}}
will display the year in which the page "Main Page" was last approved, while the call {{APPROVALYEAR:Employees list}}
will display the year in which the page "Employees list" was last approved.
If any of these magic words are called for a page that has no approved revision, or for a page that does not exist, they will simply not display anything.
The first four of these magic words can also be called for files; the last one, APPROVALUSER, unfortunately will not work.
Note that, if you began using Approved Revs before version 1.4, the first four magic words, which all have to do with the time in which the revision was made, will most likely display a blank for any page whose revision was approved while Approved Revs was still on an older version.
API
Approved Revs defines an API action, "approve", which lets you either approve or (if the extra parameter "unapprove" is added) unapprove any revision via the MediaWiki API. See here for an explanation of the syntax for this API.
Marking all pages as approved
For pages that do not yet have an approved revision, you may want to automatically approve their latest revision, as a way to quickly initialize their content.
For that, you can use the command line script 'ApprovedRevs/maintenance/approveAllPages.php
'.
This script approves the latest revision of all pages that can be approved but do not have an approved revision.
(The script has various optional flags, including one that lets you also handle pages that already do have an approved revision.)
File approvals
You can also approve file revisions with Approved Revs. It should be noted that only revisions to the actual file are approvable; revisions to the wikitext of the file pages are not. As such, approval of files is not done by clicking the "view history" link in the top-right of the file's page. Instead, scroll to the "File history" section near the bottom of the file page, and click "approve" on the right of the file history table.
When a version of an image is approved, that version is displayed when the image is included on other pages. For non-image uploads (e.g. PDFs), any links directly to the file will go to the approved version, not the latest.
Just like the approveAllPages.php
script, there is another script, approveAllFiles.php
, that exists specifically for file approvals.
Versionsgeschichte
Approved Revs ist derzeit bei Version 2.2.1. Siehe die ganze Versionsgeschichte.
Bekannte Probleme
- Approved Revs does not work for anonymous users with the AccessControl extension - approving a revision leads to a "Deny_action" error, because these users do not have access to history.
Beiträge zu diesem Projekt
Bugs and feature requests
Sende Deine Bug-Hinweise und Anfragen an Yaron Koren (yaron57 gmail.com).
Contributing patches to the project
If you found some bug and fixed it, or if you wrote code for a new feature, please either do a Git commit for it, or create a patch by going to the "ApprovedRevs
" directory, and typing:
git diff > descriptivename.patch
If you create a patch, please send it, with a description, to Yaron Koren.
Übersetzung
Übersetzung von Approved Revs wird von translatewiki.net gemacht. Die Übersetzung für diese Erweiterung findet man hier: https://translatewiki.net/w/?title=Special:Translate&group=ext-approvedrevs. Um Sprachübersetzungen oder Änderungen zu ergänzen, solltest Du ein Konto bei translatewiki.net erstellen, dann einen Antrag auf Erlaubnis bei den Administratoren stellen, um dann bestimmte Sprache oder Sprachen diese Seite zu übersetzen (das ist ein sehr einfacher Vorgang). Once you have permission for a given language, you can log in and add or edit whatever messages you want to in that language.
Siehe auch
Diese Erweiterung ist in den folgenden Softwarepaketen enthalten und/oder wird von den folgenden Wiki-Farmen, bzw. Wiki-Hostern verwendet: Dies ist keine maßgebliche Liste. Softwarepakete und/oder Wiki-Farmen, bzw. Wiki-Hoster nutzen diese Erweiterung ggf., obwohl sie nicht in dieser Liste enthalten sind. Prüfe daher stets die Nutzung im verwendeten Softwarepaket und/oder bei der Wiki-Farm, bzw. dem Wiki-Hoster. |