Manual:Reverts/cs

Vrácení je (obecně řečeno) úprava, která obrací akce ostatních editorů. V tomto procesu se vytvoří nová verze stránky.

Tato stránka slouží jako přehled různých typů revertů podporovaných a rozpoznávaných MediaWiki, zejména pro vývojáře. Také se zabývá tím, jak integrovat rozšíření s mechanismy souvisejícími s vracením změn, které jsou součástí jádra MediaWiki.

Typy vrácení změn

MediaWiki rozpoznává tři metody provádění vrácení změn.

Undo (zpět)

Uživatelské rozhraní (UI)

Vrácení změn se provádí pomocí odkazu zpět, který se zobrazuje v historii stránky, v zobrazení rozdílů, v seznamu posledních změn a na dalších místech.

Odkazy pro vrácení zpět ukazují na index.php?action=edit s parametry undo a undoafter, které určují, které úpravy mají být vráceny zpět.

  • undo – ID poslední revize, která má být vrácena zpět.
  • undoafter – ID poslední "dobré" revize. Další revize bude první revizí, která bude vrácena zpět.

Související stránky: Příručka:Parametry pro index.php#Úprava a odeslání

API

Vrácení akcí lze provést přes API s použitím action=edit s parametry undo a undoafter. Jejich chování je stejné jako v případě index.php?action=edit.

Mechanismus

Všechny revize od undoafter (bez DPH) do undo (včetně) jsou vráceny zpět. Technicky řečeno, EditPage aplikuje inverzi rozdílu mezi revizemi undoafter a undo na aktuální verzi stránky. Pokud to není možné, zobrazí se běžný formulář pro úpravy a úprava se nepočítá jako vrácení zpět.

Poté se uživateli zobrazí editační formulář, kde lze výsledný obsah dále upravovat.

Od verze 1.36, pokud uživatel provede jakékoli úpravy obsahu před uložením, úprava není označena jako vrácení zpět. To má zabránit uživatelům v označování libovolných úprav jako vrácených.

Zpět je jediná metoda, která umožňuje vrácení změn provedených občas. Je to také jediný způsob, který nemusí nutně obnovit stránku do předchozího stavu. undoafter a undo mohou odkazovat na libovolnou revizi, nemusí být na stránce, na kterou se má vrácení akce použít. To znamená, že teoreticky lze pro jakoukoli libovolnou změnu na stránce vytvořit příkaz vrácení zpět.

Jiné typy obsahu

Pokud vaše rozšíření implementuje nový ContentHandler, může přepsat metodu getUndoContent a přizpůsobit tak zpracování vrácení zpět podle typu obsahu.

Rollback

Uživatelské rozhraní

Vrácení změn lze provést pomocí odkazu rollback (vrácení změn), který se zobrazuje v historii stránky, v zobrazení rozdílů, v seznamu posledních změn a na dalších místech.

Odkazy pro vrácení změn ukazují na index.php?action=rollback s dalšími parametry pro zajištění vrácení správné sady změn.

Viz také: Příručka:Parametry pro index.php#rollback

API

Vrácení změn lze provést přes API pomocí action=rollback. Jejich chování je stejné jako v případě index.php?action=rollback.

Mechanismus

Vrácení změn vrátí zpět poslední úpravy provedené posledním editorem stránky. Toto je běžně užitečný scénář při řešení vandalismu, protože obvykle by měly být vráceny všechny změny provedené jedním uživatelem v poslední době.

Pokud všechny revize stránky pocházejí od stejného uživatele, nelze ji vrátit zpět.

Ruční obnovení

Verze MediaWiki:
1.36

Ruční obnovení nepoužívá žádné speciální uživatelské rozhraní ani API, někdo pouze upraví stránku tak, aby se vrátila ke starší verzi. Někdy se to provede přechodem na starou revizi stránky v historii stránek, kliknutím na tlačítko Upravit (což otevře normální formulář pro úpravy, ale předvyplní jej obsahem dané revize) a uložením. Někdy se pouhou ruční úpravou nejnovější revize (zejména při vrácení malé změny). Software automaticky (v rámci určitých omezení) rozpozná, kdy úprava vrátí stránku do starší verze. Při každé úpravě MediaWiki prohledá několik nejnovějších revizí stránky (standardně zadaných hodnotou $wgManualRevertSearchRadius, 15) a vyhledá nejnovější revizi s odpovídajícím obsahem. Pokud je taková revize nalezena, je úprava označena jako "ruční obnovení", tj. úprava obnovující stránku do přesně předchozího stavu.

Funkci lze zcela zakázat nastavením hodnoty $wgManualRevertSearchRadius na nulu.

Další typy vrácení

Pro multi-content revisions existují další dvě akce index.php: mcrundo (což je stejné jako vrácení zpět, ale funguje na všech slotech revize) a mcrrestore (která vrátí všechny sloty na starší revizi). Očekává se, že tyto problémy zmizí, jakmile budou revize více obsahů lépe integrovány s logikou editace.

Vrácení tagů

Ve výchozím nastavení je každá revize, kterou MediaWiki považuje za návrat, označena příslušným tagem změny. Každý z těchto tagů lze jednotlivě zakázat pomocí konfigurační proměnné $wgSoftwareTags.

  • Undo: mw-undo
  • Rollback: mw-rollback
  • Ruční vrácení: mw-manual-revert

Od verze 1.36 se s každou značkou v poli ct_params tabulky change_tag ukládají další data o vrácení. Data jsou objekt EditResult přidružený k úpravě (viz další část) a kódovaný jako JSON.

Přístup k informacím o obnovení v rozšířeních

Verze MediaWiki:
1.35

Verze 1.35 zavedla třídu EditResult, která se vytvoří při ukládání úprav. Tento objekt zapouzdřuje informace o účincích úpravy v kontextu historie stránky, a co je nejdůležitější:

  • Zda se jednalo o vrácení změny
  • Která metoda revertování byla použita
  • Jaká je "základní" revize pro toto vrácení?
  • Které revize byly vráceny zpět

Tento objekt je předáván rozšířením pomocí háčku PageSaveComplete.

Vrácená značka

Verze MediaWiki:
1.36

Ve verzi 1.36 byl zaveden nový tag změny – mw-reverted, který se používá k označení vrácených úprav.

Plánování a provedení

Značka je použita v úloze s názvem revertedTagUpdate naplánované pomocí fronty úloh. Úloha je přidána do fronty programem DerivedPageDataUpdater po uložení úpravy.

Pokud má vaše wiki rušnou frontu úloh a dochází k výrazným prodlevám mezi provedením vrácení změn a použitím tagu, můžete v závislosti na vašem nastavení chtít úlohu spustit v samostatné frontě nebo ji upřednostnit. Podrobnosti viz Příručka:Fronta úloh.

Podmínky pro provedení

Aktualizace bude naplánována po uložení úpravy, pokud jsou splněny všechny následující podmínky:

  • Úprava je vrácení jakéhokoli typu, který MediaWiki rozpozná. Viz #Typy vrácení.
  • Počet vrácených úprav je menší nebo roven $wgRevertedTagMaxDepth.
  • Samotná vrácená revize není označena jako vrácená nebo smazaná.
  • Úprava je považována za automaticky schválenou, což může mít v závislosti na vašem nastavení různý význam:
    • Pokud máte na své wiki povoleno hlídání pomocí konfigurační proměnné $wgUseRCPatrol, automatické schválení je ekvivalentem automatického hlídání úpravy. Vrácený tag bude tedy okamžitě použit pouze u uživatelů s uživatelským právem autopatrol.
    • Pokud máte nainstalované rozšíření pro správu obsahu, například FlaggedRevs, může MediaWiki sdělit, zda je úprava automaticky schválena. Jak přesně se to určí, závisí na rozšíření. (Viz #Integrace rozšíření.)

Pokud je vrácená aktualizace štítku zastavena subsystémem hlídek nebo rozšířením, lze ji později přeplánovat, jakmile úpravu schválí jiný uživatel. V případě hlídkování se to stane, když je hlídána úprava. Podrobnosti o integraci s touto funkcí v rozšířeních naleznete v další části.

Tag mw-reverted se nikdy nepoužije na fiktivní revize odpovídající akcím v protokolu (např. přesuny stránek a změny ochrany), a to ani v případě, že se objeví uprostřed série vrácených úprav, aby se předešlo náznaku, že příslušná akce byla vrácena zpět.

Rozšíření pro správu obsahu, jako je FlaggedRevs, obecně přepíší chování subsystému hlídkování.
Hlídkování je ve výchozím nastavení povoleno, ale některé wikiny, které ho mají povolený, ho nepoužívají nebo ho používají jen částečně (mnoho úprav není nikdy hlídáno). Vrácené změny, které nejsou hlídány, nebudou označeny tagem reverted (vráceno). Ujistěte se, že vaše aktuální konfigurace je vhodná pro vaši wiki. Můžete zkusit hlídkování úplně zakázat nebo dát uživatelské oprávnění autopatrol širší skupině uživatelů.

Integrace rozšíření

Rozšíření, která zahrnují nějaký mechanismus schvalování revizí, se mohou připojit k funkci vrácených tagů, aby MediaWiki věděla, kdy má provést aktualizaci vrácených tagů.

První částí je háček BeforeRevertedTagUpdate. Volá se před naplánováním aktualizace a rozšíření mohou tento háček použít k zabránění spuštění aktualizace, pokud úprava není považována za automaticky schválenou a vyžaduje další kontrolu.

Pokud byla aktualizace zastavena, může ji rozšíření později přeplánovat pomocí služby RevertedTagUpdateManager.

Schválení revize
$revertedTagUpdateManager = MediaWikiServices::getInstance()->getRevertedTagUpdateManager();
$revertedTagUpdateManager->approveRevertedTagForRevision( $acceptedRevisionId );
Nic katastrofického se nestane, pokud požádáte o provedení stejné aktualizace dvakrát. Aktualizace je idempotentní.

FlaggedRevs

Pokud jste si nainstalovali rozšíření FlaggedRevs, bude vrácení změn považováno za automaticky schválené, pokud:

  • Funkce FlaggedRevs je nakonfigurována tak, aby se na stránce nepoužívala.
  • Uživatel má uživatelské oprávnění autoreview.
  • Úprava je vlastní návrat.
  • Úprava je jinak způsobilá k automatickému recenzování.

Pokud nebylo vrácení automaticky schváleno, lze jej později schválit pouhým zkontrolováním úpravy.

Související odkazy

Category:MediaWiki concepts/cs
Category:MediaWiki concepts/cs