Portál AbcLinuxu, 30. dubna 2025 10:11
Minulý týden se privátní server, na kterém hostuji svou MediaWiki stěhoval na jinou infrastrukturu. Pro jistotu jsem udělal kompletní zálohy a rozhodl využít situace k dlouho odkládané aktualizaci z verze 1.27.0-alpha(517e327) na aktuální 1.33.0-alpha (043135a). Zdálo se, že upgrade MediaWiki proběhnul bez problémů, tak mě napadlo udělat kompletní upgrade celého stroje. Vykopnul jsem tedy poslední zbytky php5 a doinstaloval chybějící části pro php7.3, jenže ouha! Ukázalo se, že některé věci přestaly fungovat tak jak bylo zvykem. A jednou z nich bylo i rozhraní pro sledování posledních změn.
Nevím jak vás, ale mne už delší čas u oficiálních projektů WikiMedie irituje prapodivná záliba v javascriptových bastlech. Pokud se alespoň občas kouknete na Wikipedii a zkusíte něco doplnit, tak jste se s těmi javascriptovými omalovánkami nepochybně setkali.
Netušil jsem, že z toho udělali default. Můj problém ale nastal díky tomu, že kód, který se zobrazuje není součástí jádra MediaWiki. Takže se po aktualizaci v záhlaví stránky posledních změn místo původního formuláře zobrazoval jen pitomý banner. Lámal jsem si hlavu s tím co je špatně. Procházel kde co, zkoušel kde co, abych rozchodil alespoň ten nový facelift – bohužel bezvýsledně.
Stále mě ale soužilo že jsem nemohl přijít na to, jak vrátit původní vzhled formuláře pro stránky kde jsou poslední změny. Mezi tím jsem řešil jiné věci a v jedné diskuzi, byla zmínka jak někdo řešil podobný problém a ten souvisel s VisualEditorem. Vůbec tohle rozšíření nepoužívám, protože hodně pracuji se šablonami a na čistém wiki kódu jde mnohem lépe poznat kde je chyba, když se vygenerovaná stránka nevypadá jak by měla.
Zkusil jsem tedy tohle rozšíření doinstalovat. A ejhle, na stránce posledních změn se načetla známá javascriptová omalovánka! Samotný wysiwyg editor se spustit nepodařilo – podle toho co jsem vyčetl vyžaduje aby na localhostu naslouchal parsoid
, další javascriptová hňupina, která je navíc závislá na node.js
Na stránce k rozšíření VisualEditor bylo v ukázkové konfiguraci uvedeno, jakým způsobem lze uživatelům zabránit v tom, aby si přes osobní nastavení mohli tuhle kravinu vypnout. Bohužel tam ale nebylo nic, o tom jak se jí zbavit.
Zjistil jsem, že se dá tahle omalovánka vypnout přes osobní nastavení uživatele. Jenže pro anonymní uživatele se používá default. A háček je v tom, že pokud tohle rozšíření chybí, nebo je vypnuté, tak se na stránce, kde jsou poslední změny, nezobrazuje formulář žádný. A tím pádem zprávy nelze filtrovat.
Kdyby se v takovém případě zobrazoval původní formulář, bylo by vše ok. Ale ne. Hloubal jsem tedy nad tím, jak se dostat k původnímu vzhledu, abych mohl VisualEditor zase vykopnout.
Na manuálové stránce pro $wgDefaultUserOptions příslušná volba chyběla. Nezbylo tedy, než se ponořit do hlubin PHP kódu MediaWiki core. A nakonec jsem to v souboru includes/preferences/DefaultPreferencesFactory.php
našel.
Aby anonymní uživatelé měli na stránce Poslední změny k dispozici původné formulář, který nepoužívá javascript, musíte přidat do vašeho konfiguračního souboru LocalSettings.php
tohle:
$wgDefaultUserOptions['rcenhancedfilters-disable'] = true;
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.