Extension:MassEditRegex
![]() Stav rozšíření: stabilní |
|
---|---|
![]() |
|
Implementace | Akce stránky , Speciální stránka |
Popis | Umožňuje použití regulárních výrazů k úpravě více stránek najednou |
Autoři | Adam Nielsen (Malvineousdiskuse) |
Nejnovější verze | 8.4.1 |
MediaWiki | >= 1.40.0 |
Změny v databázi | Ne |
Licence | GNU General Public License 2.0 nebo novější |
Stáhnout | |
|
|
|
|
Přeložte rozšíření MassEditRegex, používá-li lokalizaci z translatewiki.net | |
Problémy | Otevřené úkoly · Nahlásit chybu |
Varování: Zde popsaný kód nebo konfigurace představuje hlavní bezpečnostní riziko. Správci stránek: Dokud nebude tento problém zabezpečení vyřešen, nedoporučujeme stránku používat. Problém: If an admin uses an evil regex (for example- ^(([a-z])+.)+[A-Z]([a-z])+$) to perform replacements on a page with bad text (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa! for the example regex) (which does not match with the regex) using their browser then MassEditRegex hangs forever, causing a self-Regex Denial-of-Service. Redmin (talk) 19:03, 28 May 2025 (UTC) Řešení: Only use efficient regexes (of linear time complexity) Redmin (talk) 19:03, 28 May 2025 (UTC) |
Rozšíření MassEditRegex umožňuje administrátorům provádět jednu úpravu na více stránkách v jednom kroku spuštěním regulárního výrazu nad obsahem každé stránky. To se dobře hodí pro provádění jednoduchých úprav, jako je přejmenování šablony, přidání stránek do kategorie nebo oprava překlepů (všechny tyto operace lze provést v rámci jedné úpravy zadáním více regulárních výrazů).
Použití
Jakmile je rozšíření nainstalováno a je uděleno oprávnění masseditregex
k používání MassEditRegex, přejděte na "Special:MassEditRegex" a vyplňte formulář pro úpravy.
Pro použití tohoto rozšíření je nutná znalost regulárních výrazů.
Funkce
- Iterace stránek lze provádět na straně klienta, takže maximální doba provádění PHP již není problémem při úpravě velkého počtu stránek.
- Transformujte každou stránku pomocí jednoho nebo více regulárních výrazů v jednom kroku.
- Úpravy se zobrazují jako "bot", takže se nezobrazují v běžném seznamu úprav (pokud se uživatel nerozhodne zobrazovat úpravy od botů).
- Změny mohou provádět pouze uživatelé s oprávněním
masseditregex
. - Na stránkách kategorií a na Special:WhatLinksHere se objeví nová záložka "edit all" (upravit vše), kde můžete upravovat všechny uvedené stránky najednou.
- Stránky k úpravě lze zadat jako:
- Seznam názvů stránek
- Seznam předpon názvů stránek (např. "Test" bude odpovídat stránkám s názvy "Testing" (testování) a "Tested" (testovaný))
- Seznam kategorií (všechny stránky v rámci kategorií budou upraveny)
- Seznam zpětných odkazů (upravené stránky jsou ty, které odkazují na odkazy v seznamu)
Instalace
- Stáhněte soubor/y a vložte je do adresáře pojmenovaného
MassEditRegex
ve vaší složceextensions/
.
Vývojáři a přispěvatelé kódu by si místo toho měli nainstalovat rozšíření from Git pomocí:cd extensions/ git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/MassEditRegex
- Na konec vašeho souboru LocalSettings.php přidejte následující kód:
wfLoadExtension( 'MassEditRegex' );
- Nakonfigurujte si skupinu uživatelů a uživatele dle vlastního uvážení.
Dokončeno – Přejděte na stránku Special:Version vaší wiki a zkontrolujte, zda bylo rozšíření úspěšně nainstalováno.
Nastavení
Toto rozšíření je dodáváno s dalším uživatelským právem s názvem "masseditregex
", které umožňuje přesnou kontrolu nad tím, které skupiny uživatelů mohou toto rozšíření používat.
Ve výchozím nastavení není přiřazeno žádné skupině uživatelů.
V případě, že jej chcete přiřadit uživatelské skupině, např. "masseditregexeditor
", přidejte následující kód do souboru "LocalSettings.php
" hned za řádky přidané v kroku (3) instalačního procesu:
$wgGroupPermissions['masseditregexeditor']['masseditregex'] = true;
Případně můžete toto oprávnění udělit existující uživatelské skupině, např. "sysop
", přidáním následujícího řádku:
$wgGroupPermissions['sysop']['masseditregex'] = true;
Tipy
Přidání obsahu na začátek stránky:
- Detekce libovolného prvního znaku na začátku stránky: → Hledat:
/^(.)/
- Přidat můj obsah před znak nacházející se na začátku stránky, včetně zalomení řádku: → Nahradit tímto:
MyContent\n$1
Známé problémy
- Spouštění na straně serveru je výchozí, protože by (mělo) být rychlejší.
Úprava velkého počtu stránek však způsobí vypršení časového limitu serveru kvůli omezením doby provádění skriptů v PHP. Abyste tento problém obešli (a případně získali lepší zpětnou vazbu o průběhu), můžete zaškrtnout políčko "execute in browser" (spustit v prohlížeči), aby se sledování úloh provádělo na straně klienta. To by mělo znamenat, že časové limity již nebudou problémem.
- Stránka nenalezena
V (alespoň) MediaWiki 1.31 a novějších, pokud je zadaný regulární výraz neplatný, bude falešně indikovat, že nebyly nalezeny všechny stránky, které jste vybrali k nahrazení.
- Nahrazení v určitých jmenných prostorech
Pokud chcete nahradit text pouze v určitých jmenných prostorech, např. "File", a zadáte jej s předponou stránky, zobrazí se vám následující upozornění: "Error: The MediaWiki API returned the error code invalidtitle: Bad title "File:" (chyba: API MediaWiki vrátilo chybový kód invalidtitle: Špatný název "File:").
Související odkazy
- Extension:Replace Text — podobné rozšíření, které však nebude fungovat, pokud pro vaši wiki nastavíte hodnotu
$wgCompressRevisions = true;
. - Extension:RegexFunctions
![]() | 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. |
- Stable extensions/cs
- Page action extensions/cs
- Special page extensions/cs
- GPL licensed extensions/cs
- Extensions in Wikimedia version control/cs
- SkinTemplateNavigation::Universal extensions/cs
- All extensions/cs
- Extensions with security vulnerabilities/cs
- Extensions included in Miraheze/cs
- Extensions included in MyWikis/cs
- Extensions included in ProWiki/cs
- Extensions included in WikiForge/cs
- Edit extensions/cs