Rozszerzenie:Zatwierdzane Wersje (Approved Revs)
Zatwierdzone wersje to rozszerzenie, które pozwala administratorom oznaczyć określoną wersję strony jako "zatwierdzoną". Zatwierdzoną wersją strony jest wersja wyświetlana użytkownikom w jej głównym adresie URL.
Nawet jeśli wersja zostanie zatwierdzona, większość rozszerzeń, które odzyskają treść stron, nadal otrzyma ostatnią wersję, a nie zatwierdzoną (jeśli te dwa są różne). Rozszerzenia, które pobierają określone "dane" ze stron, takie jak Cargo , Semantic MediaWiki i $3, na szczęście wyświetlają prawidłowe (tj. zatwierdzone) dane.
Pobieranie
Możesz pobrać kod rozszszerzenia 'Approved Revs' w formie .zip, tutaj.
Możesz również pobrać kod bezpośrednio za pośrednictwem Git z repozytorium kodu źródłowego MediaWiki. Z linii poleceń możesz wywołać następujące polecenie:
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/ApprovedRevs.git
Aby zobaczyć kod w sieci, w tym historię wersji każdego pliku, przejdź do phab:diffusion/EARE/browse/master/.
Instalacja
Aby zainstalować tę rozszerzenie, utwórz katalog 'ApprovedRevs
' (czy to wyciągnięcie skompresowanego pliku, czy pobranie za pomocą Git) i umieść ten katalog w głównym katalogu MediaWiki 'extensions'.
Następnie w pliku 'LocalSettings.php
', dodaj następujący wiersz:
wfLoadExtension( 'ApprovedRevs' );
Do tego rozszerzenia trzeba zainstalować dwa tabele bazy danych: "approved_revs" i "approved_revs_files".
Możesz to zrobić w jeden z dwóch sposobów: albo uruchomić skrypt "update.php " w katalogu MediaWiki /maintenance, albo wywołać SQL bezpośrednio w bazie danych - możesz go znaleźć w plikach ApprovedRevs.sql
i ApprovedFiles.sql
, zarówno znajdujących się w katalogu /sql rozszerzenia.
Na koniec, istnieją następujące prawa użytkownika zdefiniowane dla zatwierdzonych wersji:
- '
approverevisions
' - Pozwolenie na zatwierdzenie i odmowę zatwierdzenia zmian stron. Domyślnie jest ona udzielona wszystkim członkom grupy "sysop". - '
viewlinktolatest
' - Pozwolenie na widzenie notatki na górze stron, które mają zatwierdzoną zmianę, wyjaśniając, że to, co widzi użytkownik, niekoniecznie jest najnowszą zmianą. Domyślnie jest ona udzielona wszystkim (tj. "*"). - '
viewapprover
' - Pozwolenie na widzenie kolejnej notatki na górze stron, które mają zatwierdzoną zmianę, stwierdzając, kto ostatnio ją zatwierdził. Domyślnie jest ono udzielone wszystkim członkom grupy "sysop".
Możesz modyfikować zestaw użytkowników, którzy mają takie uprawnienia. Na przykład, aby link "przejrzyj najnowsze rewizje" pojawił się tylko dla administratorów, można dodać następujące, poniżej zawartości zatwierdzonych przeglądów:
$wgGroupPermissions['*']['viewlinktolatest'] = false;
$wgGroupPermissions['sysop']['viewlinktolatest'] = true;
Autorzy
Approved Revs został napisany przez Yaron Koren. Ważny wkład w kod programu został również wprowadzony przez Raimonda Spekkinga, Siebranda Mazelanda, Jeroena De Dauw, Eli Handel, Andrew Engelbrecht, hashara, Anomie, Marka Hershbergera, Flo, Addshore, Jamesa Montalvo, Fodaga, Kris Field i innych.
Użycie
Po zainstalowaniu rozszerzenia każdy posiadający pozwolenie "approverevisions
" zobaczy link, który czyta " (aprobuje) " na każdym wierszu strony historii strony.
Kliknięcie tego linku ustawi dany przegląd jako zatwierdzony.
Jeśli następnie wrócisz na stronę historii, zobaczysz połączenie "zaaprobować" obok każdej innej rewizji, wraz z połączeniem "nie zatwierdzić" dla zatwierdzonej rewizji;
wiersz zatwierdzonej rewizji będzie również miał gwiazdę obok.
Kliknięcie przycisku "zatwierdź" dla każdej innej wersji spowoduje ponowne ustawienie zatwierdzenia tej wersji; Kliknięcie przycisku "Anuluj zatwierdzenie" oznacza, że nie będzie już zatwierdzonej wersji dla tej strony.
Użytkownicy bez uprawnienia "approverevisions
" nie zobaczą nic specjalnego na stronie historii, poza ikoną gwiazdki na wierszu zatwierdzonej wersji.
Jeśli użytkownik posiadający uprawnienie'approverevisions
' dokona edycji na stronie, która ma już zatwierdzoną wersję, ta edycja, czyli najnowsza wersja strony, automatycznie zostanie oznaczona jako zatwierdzona.
Natomiast jeśli strona nie ma zatwierdzonej rewizji (to oczywiście obejmuje nowe strony), automatyczne zatwierdzenia nie będą stosowane.
Jednym wyjątkiem jest to, że $egApprovedRevsBlankIfUnapproved jest ustawiony na true
dla wiki; jeśli tak, każda edycja przez approverevisions
użytkownika do nie zatwierdzonej strony również automatycznie zostanie zatwierdzona, co spowoduje, że strona nie będzie pusta.
Możesz wyeliminować automatyczne zatwierdzenia, wymagając w ten sposób, aby każde zatwierdzenie było wykonywane ręcznie, dodając poniżej LocalSettings.php
wpisane w zatwierdzone rewizje:
$egApprovedRevsAutomaticApprovals = false;
Podobna logika ma zastosowanie do nowych wersji plików. Te automatyczne zatwierdzenia mogą być również automatycznie wyłączone następującym linią:
$egApprovedRevsFileAutomaticApprovals = false;
Odwrotnie, jeśli ustawisz "$egApprovedRevsBlankIfUnapproved
" lub "$egApprovedRevsBlankFileIfUnapproved
" na 'true'w LocalSettings.php
(patrz poniżej), każda edycja stron i/lub plików dokonana przez użytkownika z uprawnieniem "approverevisions
" zostaje zatwierdzona - nawet edycje stron/plików, które nie mają zatwierdzonej rewizji.
Wpisy do "aprobaty" są przechowywane w dzienniku "aprobata", ale akceptacje, które są automatyczne, ponieważ ktoś z uprawnieniem do zatwierdzenia edytuje stronę, nie są.
Special:ApprovedRevs page
Approved Revs określa specjalną stronę, "Special:ApprovedRevs
" która pokazuje cztery oddzielne listy:
- strony, których zatwierdzona rewizja nie jest ich ostatnią
- wszystkie strony z zatwierdzoną rewizją
- "strony nie zatwierdzone" (wszystkie strony bez zatwierdzonej rewizji)
- strony o nieważnych zatwierdzeniach (np. strony w przestrzeni nazw, która była wcześniej zatwierdzona, ale teraz już nie jest).
W trzeciej liście stron, które nie zostały zatwierdzone, można opcjonalnie załączyć link do każdej strony, aby oznaczyć ostatnią wersję tej strony jako zatwierdzoną.
Aby załączyć takie linki, dodaj następujące do LocalSettings.php
:
$egApprovedRevsShowApproveLatest = true;
Przechowywanie informacji o homologacji
Informacje o zatwierdzeniu - kto je wydał i kiedy - są przechowywane w dzienniku "Zatwierdzenia rewizji", który można zobaczyć na stronie Special:Log. Ostatnie zatwierdzenia są również wyświetlane w Special:RecentChanges.
Wyświetlanie niezatwierdzonych stron jako pustych
Jeśli chcesz, strony, które nie mają zatwierdzonej rewizji, mogą pojawiać się jako puste - użytkownicy będą nadal mogli zobaczyć wszystkie rewizje, jeśli klikną na zakładkę "historia", ale głównym wyświetleniem będzie pusta strona.
Aby to zrobić, po prostu dodać następujący wiersz do LocalSettings.php
, gdziekolwiek po włączeniu Approved Revs:
$egApprovedRevsBlankIfUnapproved = true;
Podobnie można ustawić pliki bez zatwierdzonej wersji, aby nie pojawiały się w innych stronach, dodając następujący wiersz:
$egApprovedRevsBlankFileIfUnapproved = true;
Wykazywanie niezatwierdzonych stron
Domyślnie strony bez zatwierdzonej rewizji po prostu pojawiają się normalnie, bez wskazania ich statusu. Na górze tej strony można wyświetlić wiadomość: "To ostatnia wersja tej strony, nie ma ona zatwierdzonej wersji".
$egApprovedRevsShowNotApprovedMessage = true;
Ustawianie stron jako możliwych do zatwierdzania
Niektóre strony wiki mogą mieć swoje rewizje zatwierdzane, podczas gdy inne nie; jest to określone w jeden z trzech sposobów.
Ustawianie wszystkich stron w przestrzeni nazw jako możliwych do zatwierdzenia
Istnieje globalna zmienna, $egApprovedRevsEnabledNamespaces
, która określa, które przestrzenie nazw obsługiwane są przez rozszerzenie.
Ta zmienna jest tablicą i domyślnie zawiera sześć przestrzeni nazw: NS_MAIN
(definiowany jako 0, główna przestrzenie nazw), NS_USER
(2, strony użytkowników), NS_FILE
(6, plików), NS_TEMPLATE
(10, szablonów), NS_HELP
(12, strony pomocy) i NS_PROJECT
(4, przestrzenie nazw projektu, która zazwyczaj ma taką samą nazwę jak wiki).
Możesz dodać dodatkowe przestrzenie nazw do tego zestawu - po włączeniu Approved Revs w LocalSettings.php, dodać coś takiego jak:
$egApprovedRevsEnabledNamespaces[NS_USER_TALK] = true;
Nie zaleca się dodawania przestrzeni nazw 'Kategorii' lub 'MediaWiki' do tego zestawu, ponieważ ze względu na ich specjalną implementację w MediaWiki zatwierdzenia nie będą działać prawidłowo na tych stronach.
Aby usunąć domyślne przestrzenie nazw jako zatwierdzane, należy ustawić ich wartość na false. Na przykład, aby ustawić pliki jako niezatwierdzane, dodaj następujące informacje:
$egApprovedRevsEnabledNamespaces[NS_FILE] = false;
Umożliwianie zatwierdzania stron za pomocą #approvable_by
Approved Revs definuje funkcję #approvable_by
parser, która pozwala zdefiniować pewne strony jako zatwierdzane przez niektórych użytkowników i grupy.
Na przykład następujące wywołanie pozwoliłoby użytkownikowi Alice Jones, a także użytkownikom z grup Biurokratów i Sysop, zatwierdzić stronę, na której zostało wywołane:
{{#approvable_by: users = Alice Jones | groups = bureaucrat,sysop }}
Zauważ, że jeśli użytkownik, który ma prawo do edytowania strony dzięki tej funkcji parsera, zatwierdzi wersję przed dodaniem tej funkcji, to straci możliwość dokonywania jakichkolwiek innych zatwierdzeń (ponieważ zatwierdzona wersja nie zawiera tego wywołania), dopóki administrator nie wejdzie i nie cofnie jego działania.
Ustawianie stron zatwierdzalnych za pomocą słowa kluczowego
Poszczególne strony, które nie znajdują się w jednej z określonych przestrzeni nazw, można również zatwierdzić, dodając __APPROVEDREVS__
słowo kluczowe w dowolnym miejscu na stronie.
Zaleca się dodawanie słowa kluczowego do stron za pomocą szablonu.
Jeśli __APPROVEDREVS__
zostanie dodany bezpośrednio do strony, należy uważać, aby nie zatwierdzić rewizji strony przed dodaniem tej wierszy; może to prowadzić do nieoczekiwanego zachowania.
Zezwalanie użytkownikom niebędącym administratorami na "posiadanie" stron
Czasami pomocne jest, aby pozwalać osobom bez ogólnej zgody "approverevisions
" zatwierdzić zmiany określonych stron - innymi słowy, być 'właścicielami' pewnych stron.
Przykładem jest oczywiste strony użytkowników - ma sens umożliwić każdemu użytkownikowi zatwierdzenie zmian na swoich stronach użytkowniczych.
W przypadku przestrzeni nazw innych niż "User", można wybrać, aby użytkownik, który pierwotnie stworzył jakąkolwiek stronę w tej przestrzeni nazw, został wyznaczony jako właściciel strony, który następnie posiada uprawnienie na zatwierdzenie zmian ba tej stronie.
Aby mieć taki rodzaj "własności" dla konkretnej przestrzeni nazw, musisz dodać tą przestrzeń nazw do zmiennej $egApprovedRevsSelfOwnedNamespaces
.
Aby umożliwić użytkownikom bycie "właścicielami", tj. być w stanie zatwierdzić strony w przestrzeni głównej i użytkowników, na przykład, należy dodać następujące treści do LocalSettings.php:
$egApprovedRevsSelfOwnedNamespaces = array( NS_MAIN, NS_USER );
Przestrzeń nazw musi należeć do $egApprovedRevsEnabledNamespaces
zanim może zostać dodana do $egApprovedRevsSelfOwnedNamespaces
.
Wyświetlanie informacji o zatwierdzeniu
Approved Revs definiuje pięć "słów kluczowych", które mogą być używane do wyświetlania informacji o zatwierdzeniu określonej strony (lub pliku). Są to:
APPROVALYEAR
- rok, w którym strona została ostatnio zatwierdzonaAPPROVALMONTH
- miesiąc, w którym strona została ostatnio zatwierdzonaAPPROVALDAY
- dzień miesiąca, w którym strona została ostatnio zatwierdzonaAPPROVALTIMESTAMP
- pełny stempel daty/czasu, w którym strona została ostatnio zatwierdzonaAPPROVALUSER
- użytkownik, który ostatnio zatwierdził stronę.
Wszystkie pięć może być po prostu wywołane samodzielnie (wtedy zwrócą informacje na stronie, na której znajduje się wywołanie), lub powołane z nazwą strony przekazanej (wtedy zwróci te informacje na określonej stronie).
Na przykład na stronie "Strona główna" połączenie {{APPROVALYEAR}}
wyświetla rok, w którym strona "Strona główna" została ostatnio zatwierdzona, podczas gdy połączenie {{APPROVALYEAR:Employees list}}
wyświetla rok, w jakim strona "Lista pracowników" została ostatnie zatwierdzona.
Jeśli któreś z tych słów kluczowych zostanie użyte na stronie, która nie ma zatwierdzonej zmiany, lub na stronie, której nie ma - to po prostu nie będzie wyświetlone nic.
Pierwsze cztery z tych słów kluczowych można również wywoływać w stosunku do plików; ostatnie, APPROVALUSER, niestety nie zadziała.
Należy pamiętać, że jeśli zaczęłeś używać Approved Revs przed wersją 1.4, pierwsze cztery słowa kluczowe, które mają związek z czasem, w którym dokonano rewizji, najprawdopodobniej wyświetlą puste miejsce na każdej stronie, której rewizja została zatwierdzona, podczas gdy Approved Revs był nadal na starszej wersji.
API
Approved Revs definuje działanie API, "approve", które pozwala lub zatwierdzić lub (jeśli dodany jest dodatkowy parametr "unapprove") odmówić zatwierdzenia jakichkolwiek zmian za pośrednictwem MediaWiki API. Zobacz tutaj dla wyjaśnienia składni dla tego API.
Oznaczanie wszystkich stron jako zatwierdzonych
W przypadku stron, które nie mają jeszcze zatwierdzonej wersji, możesz automatycznie zatwierdzić ich ostatnią zmianę, aby szybko zainicjować ich treść.
W tym celu można użyć skryptu wiersza polecenia 'ApprovedRevs/maintenance/approveAllPages.php
'.
Ten skrypt zatwierdza ostatnią wersję wszystkich stron, które mogą być zatwierdzone, ale nie mają zatwierdzonej wersji.
(Skrypt ma różne opcjonalne flagi, w tym jedną, która pozwala również obsługiwać strony, które już mają zatwierdzoną wersję.)
Zatwierdzanie plików
Możesz również zatwierdzić zmiany w dokumentach z Approved Revs. Należy zauważyć, że można zatwierdzić jedynie zmiany w rzeczywistym pliku, a nie zmiany w tekście wikitekst opisowej strony pliku. W związku z tym zatwierdzenie plików nie jest wykonywane poprzez kliknięcie linku "przeglądanie historii" w górnej prawej części strony opisowej pliku. Zamiast tego przewiń się do sekcji "Historia plików" w pobliżu dolnej części strony opisowej plików i kliknij "aprobuj"/ "approve" po prawej stronie tabeli historii plików.
Kiedy obraz jest wstawiany na innych stronach, to do wstawienia użyta jest jego wersja zatwierdzona. W przypadku wstawania łączy do plików nie będących obrazkami (np. PDF), wszelkie linki bezpośrednio do pliku będą pokazywać zatwierdzoną wersję pliku, a nie najnowszą - ostatnio wczytaną.
Podobnie jak w przypadku skryptu approveAllPages.php
istnieje inny skrypt, approveAllFiles.php
, który jest przeznaczony specjalnie do zatwierdzenia plików.
Historia wersji
Approved Revs jest obecnie w wersji 2.1. Zobacz całą historię wersji.
Znane problemy
- Approved Revs nie działa dla anonimowych użytkowników z rozszerzeniem AccessControl - zatwierdzenie rewizji prowadzi do błędu "Deny_action", ponieważ ci użytkownicy nie mają dostępu do historii.
Możliwości pomagania w projekcie
Błędy i prośby o rozbudowę
Send any bug reports and requests to Yaron Koren (yaron57 gmail.com).
Dodawanie poprawek do projektu
Jeśli znalazłeś jakiś błąd i go naprawiłeś, lub jeśli napisałeś kod dla nowej funkcji, proszę albo wykonaj Git commit dla niego, albo utwórz patch, przechodząc do katalogu "ApprovedRevs
" i wykonaj polecenie:
git diff > descriptivename.patch
Jeśli stworzysz patch, proszę wyślij go z opisem do Yaron Koren.
Tłumaczenie
Tłumaczenie Approved Revs jest wykonywane przez translatewiki.net. Tłumaczenie tego rozszerzenia można znaleźć tutaj: https://translatewiki.net/w/?title=Special:Translate&group=ext-approvedrevs. Aby dodać wartości językowe lub zmienić istniejące, należy utworzyć konto na translatewiki.net, a następnie poprosić administratorów o pozwolenie na przetłumaczenie określonego języka lub języków na tej stronie (jest to bardzo prosty proces). Gdy masz pozwolenie na dany język, możesz się zalogować i dodać lub edytować dowolne komunikaty w tym języku.
Zobacz też
- Rozszerzenie:ContentStabilization (StabilizacjaTreści) - umożliwia użytkownikom oznaczenie stron jako "zatwierdzone" lub "szkic" oraz wyświetlanie najnowszej zatwierdzonej wersji strony.
- Extension:FlaggedRevs - bardziej złożona alternatywa dla Approved Revs
- Rozszerzenie:Moderacja (Moderation) - Edycje pozostają prywatne dopóki nie zostaną zatwierdzone.
- Extension:Page Approvals - allows users to approve pages and automatically revokes them in case of content changes
To rozszerzenie jest dołączone do następujących farm/hostów wiki lub pakietów: To nie jest pełna lista. Niektóre farmy/hosty wiki lub pakiety mogą zawierać to rozszerzenie nawet jeśli nie są one tutaj wymienione. Zawsze sprawdzaj swoje farmy/hosty wiki, aby to potwierdzić. |