Rozšíření:Approved Revs
Approved Revs je rozšíření, které správcům umožňuje označit určitou revizi stránky jako "schválenou". Schválená revize je ta, která se zobrazí, když uživatelé zobrazí stránku na její hlavní adrese URL.
I když je revize schválena, většina rozšíření, která načítají obsah stránek, stále získá poslední revizi, nikoli schválenou (pokud se obě liší). Rozšíření, která získávají konkrétní data ze stránek, jako například Cargo , Semantic MediaWiki a $3, však naštěstí zobrazí správná (tj. schválená) data.
Ke stažení
Můžete si stáhnout kód Approved Revs ve formátu .zip zde.
Kód si také můžete stáhnout přímo přes Git z úložiště zdrojového kódu MediaWiki. Z příkazového řádku můžete volat následující:
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/ApprovedRevs.git
Chcete-li zobrazit kód online, včetně historie verzí každého souboru, přejděte na phab:diffusion/EARE/browse/master/.
Instalace
Chcete-li nainstalovat toto rozšíření, vytvořte adresář 'ApprovedRevs
' (buď extrahováním komprimovaného souboru nebo stažením přes Git) a umístěte tento adresář do hlavního adresáře MediaWiki 'extensions'.
Poté do souboru 'LocalSettings.php
' přidejte následující řádek:
wfLoadExtension( 'ApprovedRevs' );
Budete také muset nainstalovat dvě databázové tabulky pro toto rozšíření: "approved_revs" a "approved_revs_files".
Můžete to udělat jedním ze dvou způsobů: Buď spustíte skript "update.php " v adresáři /maintenance MediaWiki, nebo zavoláte SQL přímo ve vaší databázi – najdete jej v souborech ApprovedRevs.sql
a ApprovedFiles.sql
, oba se nacházejí v adresáři /sql rozšíření.
Nakonec jsou pro Approved Revs definována následující uživatelská práva:
- '
approverevisions
' - Oprávnění schvalovat a neschvalovat revize stránek. Ve výchozím nastavení je dán všem členům skupiny 'sysop'. - '
viewlinktolatest
' - Oprávnění k zobrazení poznámky v horní části stránek, které mají schválenou revizi, vysvětlující, že to, co uživatel vidí, nemusí být nutně nejnovější revize. Ve výchozím nastavení je přidělen všem (tj. '*'). - '
viewapprover
' - Oprávnění k zobrazení další poznámky v horní části stránek, které mají schválenou revizi, s uvedením, kdo ji naposledy schválil. Ve výchozím nastavení je dán všem členům skupiny 'sysop'.
Můžete upravit sadu uživatelů, kteří mají některá z těchto oprávnění. Chcete-li například, aby se odkaz „Zobrazit nejnovější revizi“ zobrazoval pouze administrátorům, můžete pod zahrnutí Approved Revs přidat následující:
$wgGroupPermissions['*']['viewlinktolatest'] = false;
$wgGroupPermissions['sysop']['viewlinktolatest'] = true;
Autoři
Approved Revs napsal Yaron Koren. Důležité příspěvky do kódu také poskytli Raimond Spekking, Siebrand Mazeland, Jeroen De Dauw, Eli Handel, Andrew Engelbrecht, hashar, Anomie, Mark Hershberger, Flo, Addshore, James Montalvo, Fodagus, Kris Field a další.
Použití
Jakmile je rozšíření nainstalováno, kdokoli s oprávněním 'approverevisions
' uvidí na každém řádku stránky historie stránky odkaz s nápisem "(schválit)".
Kliknutím na tento odkaz se tato revize nastaví jako schválená.
Pokud se poté vrátíte na stránku historie, uvidíte vedle každé další revize odkaz "schválit" spolu s odkazem "neschválit" schválenou revizi; vedle řádku schválené revize bude také hvězdička.
Kliknutím na "schválit" u jakékoli jiné revize se znovu nastaví schválení na tuto revizi; zatímco kliknutí na "neschválit" bude znamenat, že již nebude schválená revize této stránky.
Uživatelé bez oprávnění 'approverevisions
' neuvidí na stránce historie nic zvláštního, kromě ikony hvězdičky na řádku schválené revize.
Ve výchozím nastavení, pokud uživatel s oprávněním 'approverevisions
' provede úpravu stránky, která již má schválenou revizi, bude tato úprava, tj. nejnovější revize stránky, automaticky označena jako schválená.
Naproti tomu, pokud stránka nemá schválenou revizi (toto samozřejmě zahrnuje nové stránky), automatická schválení nebudou použita.
Jedinou výjimkou je, pokud je $egApprovedRevsBlankIfUnapproved nastaveno na true
pro wiki. Pokud ano, jakákoliv úprava neschválené stránky provedená uživatelem s povoleným approverevisions
bude také automaticky schválena, čímž se stránka stane neprázdnou.
Automatická schvalování můžete eliminovat, což vyžaduje, aby každé schvalování bylo prováděno ručně, a to přidáním následujícího čísla k LocalSettings.php
pod zahrnutím Approved Revs:
$egApprovedRevsAutomaticApprovals = false;
Podobná logika platí pro nové verze souborů. Tato automatická schválení lze také automaticky vypnout pomocí následujícího řádku:
$egApprovedRevsFileAutomaticApprovals = false;
Naopak, pokud nastavíte "$egApprovedRevsBlankIfUnapproved
" nebo "$egApprovedRevsBlankFileIfUnapproved
" na hodnotu true v LocalSettings.php
(viz níže), každá úprava stránek a/nebo souborů provedená uživatelem s oprávněním 'approverevisions
' bude schválena – dokonce i úpravy stránek/souborů, které nemají nemám schválenou revizi.
Schválení a neschválení ručních revizí se ukládají do protokolu 'schválení'. Ačkoli schválení, která se dějí automaticky v důsledku toho, že někdo s oprávněním ke schválení upravuje stránku, ne.
Special:ApprovedRevs page
Schválené revize definují speciální stránku "Special:ApprovedRevs
", která zobrazuje čtyři samostatné seznamy:
- stránky, jejichž schválená revize není jejich nejnovější
- všechny stránky se schválenou revizí
- "neschválené stránky" (všechny stránky bez schválené revize)
- stránky s neplatnými schváleními (jako jsou stránky ve jmenném prostoru, který byl dříve schválen, ale již není).
U třetího seznamu stránek bez schválené revize můžete volitelně zahrnout odkaz pro každou stránku, abyste označili poslední revizi dané stránky jako schválenou.
Chcete-li zahrnout takové odkazy, přidejte k LocalSettings.php
následující:
$egApprovedRevsShowApproveLatest = true;
Uložení informací o schválení
Informace o schváleních – kdo je provedl a kdy byly provedeny – jsou uloženy v protokolu "Revision approval" (schválení revize), který lze zobrazit na stránce Special:Log. Nedávná schválení jsou také uvedena v Special:RecentChanges.
Zobrazení neschválených stránek jako prázdné
Pokud chcete, můžete si nechat stránky, které nemají schválenou revizi, zobrazovat jako prázdné – uživatelé budou stále moci vidět všechny revize, pokud kliknou na záložku "historie", ale hlavním zobrazením bude prázdná stránka.
Chcete-li to provést, přidejte následující řádek k LocalSettings.php
, kdekoli po zahrnutí schválených obratů:
$egApprovedRevsBlankIfUnapproved = true;
Podobně můžete nastavit soubory bez schválené verze, aby se nezobrazovaly při vložení na jiné stránky, přidáním následujícího řádku:
$egApprovedRevsBlankFileIfUnapproved = true;
Označení neschválených stránek
Ve výchozím nastavení se stránky bez schválené revize jednoduše zobrazují normálně, bez označení jejich stavu.
Na těchto stránkách můžete nastavit, aby se nahoře zobrazila zpráva: "Toto je nejnovější revize této stránky. Nemá žádnou schválenou revizi." Chcete-li to provést, přidejte k LocalSettings.php
následující řádek:
$egApprovedRevsShowNotApprovedMessage = true;
Nastavení stránek jako schválených
Některé wiki stránky mohou mít své revize schválené, zatímco jiné ne. To se určuje jedním ze tří způsobů.
Nastavení všech stránek v jmenném prostoru jako schvalovatelných
Existuje globální proměnná $egApprovedRevsEnabledNamespaces
, která určuje, které jmenné prostory jsou zpracovány rozšířením.
Tato proměnná je pole a ve výchozím nastavení obsahuje šest jmenných prostorů: NS_MAIN
(definovaný jako 0, hlavní jmenný prostor), NS_USER
(2, uživatelské stránky), NS_FILE
(6, soubory), NS_TEMPLATE
(10, šablony), NS_HELP
(12 , stránky nápovědy) a NS_PROJECT
(4, jmenný prostor projektu, který má obvykle stejný název jako wiki).
K této sadě můžete přidat další jmenné prostory – po zahrnutí Approved Revs do LocalSettings.php přidejte něco jako:
$egApprovedRevsEnabledNamespaces[NS_USER_TALK] = true;
Do tohoto pole se nedoporučuje přidávat jmenné prostory Category nebo MediaWiki, protože kvůli jejich speciální implementaci v MediaWiki nebudou schválení na těchto stránkách fungovat správně.
Chcete-li odebrat výchozí jmenné prostory jako schválené, nastavte jejich hodnotu na false. Chcete-li například učinit soubory neschválitelnými, přidejte následující:
$egApprovedRevsEnabledNamespaces[NS_FILE] = false;
Zajištění schvalování stránek pomocí #approvable_by
Schválené revy definují funkci analyzátoru #approvable_by
, která vám umožňuje definovat určité stránky jako schvalovatelné určitými jednotlivými uživateli a skupinami.
Následující volání by například umožnilo uživateli Alici Jonesové a také uživatelům ve skupinách Byrokrat a Sysop schválit stránku, na které bylo voláno:
{{#approvable_by: users = Alice Jones | groups = bureaucrat,sysop }}
Pamatujte, že pokud uživatel, který má povoleno upravovat stránku kvůli této funkci analyzátoru, schválí revizi před přidáním této funkce, ztratí možnost provádět jakákoli další schválení (protože schválená revize neobsahuje toto volání), dokud nepřijde administrátor a nezruší svou akci.
Nastavení stránek, které lze schválit kouzelným slovem
Jednotlivé stránky mimo jeden ze specifikovaných jmenných prostorů lze také schválit přidáním kouzelného slova __APPROVEDREVS__
kamkoli na stránku.
Doporučuje se přidat toto kouzelné slovo na stránky prostřednictvím šablony.
Pokud je __APPROVEDREVS__
přidán přímo na stránku, buďte opatrní, abyste neschválili revizi stránky z doby před přidáním tohoto řetězce. To může vést k neočekávanému chování.
Přenechání "vlastních" stránek neadministrátorům
Někdy je užitečné umožnit uživatelům bez obecného oprávnění 'approverevisions
' schvalovat revize určitých stránek – jinými slovy vlastnit určité stránky.
Zřejmým příkladem jsou uživatelské stránky – má smysl umožnit každému uživateli, aby mohl schvalovat revize na svých vlastních uživatelských stránkách.
Pro jiné obory názvů než "User" si můžete vybrat, aby byl uživatel, který původně vytvořil jakoukoli stránku v tomto oboru názvů, určen jako vlastník stránky, který má poté oprávnění ke schválení revize pro danou stránku.
Chcete-li mít tento druh "vlastnictví" pro konkrétní jmenný prostor, musíte jmenný prostor přidat do proměnné $egApprovedRevsSelfOwnedNamespaces
.
Chcete-li uživatelům umožnit například "vlastnit", tj. mít možnost schvalovat stránky v hlavním a uživatelském jmenném prostoru, měli byste k LocalSettings.php přidat následující:
$egApprovedRevsSelfOwnedNamespaces = array( NS_MAIN, NS_USER );
Jmenný prostor musí patřit do $egApprovedRevsEnabledNamespaces
, než může být přidán do $egApprovedRevsSelfOwnedNamespaces
.
Zobrazení informací o schválení
Approved Revs definuje pět "kouzelných slov", která lze použít k zobrazení informací o schválení konkrétní stránky (nebo souboru). Jsou to:
APPROVALYEAR
- rok, ve kterém byla stránka naposledy schválenaAPPROVALMONTH
- měsíc, ve kterém byla stránka naposledy schválenaAPPROVALDAY
- den v měsíci, ve kterém byla stránka naposledy schválenaAPPROVALTIMESTAMP
- úplné časové razítko data/času, kdy byla stránka naposledy schválenaAPPROVALUSER
- uživatel, který stránku naposledy schválil.
Všech pět lze jednoduše volat samostatně (což vrátí tyto informace pro stránku, na které se volání nachází), nebo volat se zadaným názvem stránky (což vrátí tyto informace pro zadanou stránku).
Takže například na stránce "Main Page" (hlavní stránka) zobrazí volání {{APPROVALYEAR}}
rok, ve kterém byla stránka "Main Page" naposledy schválena, zatímco volání {{APPROVALYEAR:Employees list}}
zobrazí rok, ve kterém byla naposledy stránka "Employees list" (seznam zaměstnanců). schválena.
Pokud je kterékoli z těchto kouzelných slov vyvoláno pro stránku, která nemá schválenou revizi, nebo pro stránku, která neexistuje, prostě nic nezobrazí.
První čtyři z těchto kouzelných slov lze také volat pro soubory. Poslední, APPROVALUSER, bohužel nebude fungovat.
Všimněte si, že pokud jste začali používat schválené revize před verzí 1.4, první čtyři magická slova, která všechna mají co do činění s časem, kdy byla revize provedena, budou s největší pravděpodobností zobrazovat prázdnou stránku pro každou stránku, jejíž revize byla schválena během schválení revize byl ještě na starší verzi.
API
Schválené revize definují akci API, "approve" (schválit), která vám umožňuje buď schválit nebo (pokud je přidán další parametr "unapprove") zrušit schválení jakékoli revize prostřednictvím MediaWiki API. Vysvětlení syntaxe tohoto rozhraní API naleznete na na této adrese.
Označení všech stránek jako schválené
U stránek, které ještě nemají schválenou revizi, můžete chtít automaticky schválit jejich poslední revizi, abyste mohli rychle inicializovat jejich obsah.
K tomu můžete použít skript příkazového řádku 'ApprovedRevs/maintenance/approveAllPages.php
'.
Tento skript schvaluje nejnovější revizi všech stránek, které lze schválit, ale nemají schválenou revizi.
(Skript má různé volitelné příznaky, včetně jednoho, který vám umožní pracovat se stránkami, které již mají schválenou revizi.)
Schválení souborů
Můžete také schvalovat revize souborů pomocí Approved Revs. Je třeba poznamenat, že schvalovatelné jsou pouze revize skutečného souboru. Revize wikitextu stránek souboru nejsou. Schvalování souborů jako takové se neprovádí kliknutím na odkaz "zobrazit historii" v pravém horním rohu stránky souboru. Místo toho přejděte do sekce "Historie souborů" v dolní části stránky souboru a klikněte na "schválit" napravo od tabulky historie souborů.
Po schválení verze obrázku se tato verze zobrazí, když je obrázek zahrnut na jiných stránkách. V případě nahrání jiných než obrázků (např. souborů PDF) budou veškeré odkazy přímo na soubor směřovat na schválenou verzi, nikoli na nejnovější.
Stejně jako skript approveAllPages.php
existuje další skript, approveAllFiles.php
, který existuje speciálně pro schvalování souborů.
Historie verzí
Approved Revs je aktuálně ve verzi 2.1. Podívejte se na celou historii verzí.
Známé problémy
- Approved Revs nefunguje pro anonymní uživatele s příponou AccessControl – schválení revize vede k chybě "Deny_action", protože tito uživatelé nemají přístup k historii.
Přispívání do projektu
Chyby a požadavky na funkce
Pošlete jakékoli zprávy o chybách a požadavky Yaronovi Korenovi (yaron57 gmail.com).
Přispívání záplat do projektu
Pokud jste našli nějakou chybu a opravili ji, nebo pokud jste napsali kód pro novou funkci, buď pro ni proveďte revizi Git, nebo vytvořte opravu tak, že přejdete do adresáře "ApprovedRevs
" a napíšete:
git diff > descriptivename.patch
Pokud vytvoříte opravu, zašlete ji s popisem Yaronovi Korenovi.
Překládání
Překlad Approved Revs se provádí prostřednictvím translatewiki.net. Překlad tohoto rozšíření naleznete zde: https://translatewiki.net/w/?title=Special:Translate&group=ext-approvedrevs. Chcete-li přidat jazykové hodnoty nebo změnit stávající, měli byste si vytvořit účet na translatewiki.net a poté požádat administrátory o povolení k překladu určitého jazyka nebo jazyků na této stránce (toto je velmi jednoduchý proces). Jakmile budete mít oprávnění pro daný jazyk, můžete se přihlásit a přidávat nebo upravovat jakékoli zprávy, které v tomto jazyce chcete.
Související odkazy
- Extension:ContentStabilization - umožňuje uživatelům označit stránky jako "schválené" nebo "koncepty" a zobrazit nejnovější schválenou verzi stránky.
- Rozšíření:FlaggedRevs - komplexnější alternativa k Approved Revs
- Rozšíření:Moderation - úpravy zůstanou soukromé, dokud nebudou schváleny
- Extension:Page Approvals - allows users to approve pages and automatically revokes them in case of content changes
Toto rozšíření je zahrnuto v následujících wiki farmách/hostitelích a/nebo balíčcích: Toto není autoritativní seznam. Některé wiki farmy/hostitelé a/nebo balíčky mohou toto rozšíření obsahovat, i když zde nejsou uvedeny. Pro potvrzení se vždy obraťte na své wiki farmy/hostitele nebo balíček. |