Rozšíření FAQ

This page is a translated version of the page Extensions FAQ and the translation is 100% complete.
Rozšíření MediaWiki

Kde najdu seznam nainstalovaných rozšíření?

Stránka Special:Version na každé wiki obsahuje seznam rozšíření, která se sama zaregistrovala v softwaru MediaWiki . Všechna rozšíření lze nainstalovat bez zobrazení na Special:Version, pokud vývojář nezahrne správný kód, aby je tam uvedl.

Jak povolím rozšíření?

U většiny rozšíření zkopírujte soubor (nebo adresář) rozšíření PHP do své složky extensions/ a přidejte do své složky LocalSettings.php následující příkaz, přičemž ExtensionName je název souboru vašeho rozšíření, například MyExtension.php.

require_once "extensions/ExtensionName/ExtensionName.php";

Od 1.25 (2015) existuje nový způsob instalace rozšíření, který funguje s rozšířeními podporujícími registraci rozšíření. Ekvivalent pro výše uvedené rozšíření by byl:

wfLoadExtension('ExtensionName');

Některá rozšíření však mají další kroky a/nebo jiné instalační postupy. Některá rozšíření budou obsahovat textový soubor s názvem README (někdy INSTALL), který bude obsahovat podrobnější informace o tomto rozšíření.

Podívejte se také na: Příručka:Rozšíření#Instalace rozšíření

Jak napíšu vlastní rozšíření?

Podívejte se na stránku Příručka:Vývoj rozšíření .

Jak deaktivuji ukládání do mezipaměti pro stránky používající má rozšíření?

Pokud píšete např. special page:

global $wgOut;
$wgOut->enableClientCache(false);

Pro háčky značek analyzátoru:

function wfSomeHookFunction( $parser, $foo, $bar ) {
    $parser->getOutput()->updateCacheExpiry(0);
    ...
}

V případě, že výstup vašeho rozšíření závisí pouze na nějaké možnosti nebo uživatelském kontextu a ne na čase, můžete jej stále nechat uložit do mezipaměti analyzátoru, ale ujistěte se, že je označen jako jedna varianta výstupu (z mnoha možných). Použijte háček PageRenderingHash k odpovídajícímu ovlivnění mezipaměti hash.

Ve starších verzích MediaWiki byste k deaktivaci ukládání do mezipaměti použili $parser->disableCache(), ale toto bylo v MW 1.28 zastaralé a v MW 1.35 bylo zcela odstraněno.

Jak vykreslím wikitext v mém rozšíření?

Speciální stránky

Při vykreslování výstupu, který nebude podléhat mezipaměti analyzátoru, například na speciální stránce

global $wgOut;
$wgOut->parse( $text );

kde $text je wikitext, který má být analyzován.

Háčky analyzátoru

Podívejte se na stránku Příručka:Značky rozšíření#Jak vykreslím wikitext v mém rozšíření?

Jak povolím vyhledávání ve výstupu mého rozšíření (dynamický obsah)?

Nemůžeš. Dynamický obsah nelze zahrnout do statického indexu.

Jak se mohu vyhnout úpravám výstupu HTML mého rozšíření?

Viz Příručka:Rozšíření značek#Jak se mohu vyhnout úpravám výstupu HTML svého rozšíření?

Jak mohu předat parametry ve stylu XML do své značky rozšíření?

Podívejte se na stránku Příručka:Rozšíření značek#Jak mohu do své značky rozšíření předat parametry ve stylu XML?

Rozšíření a šablony

Podívejte se na stránku Příručka:Rozšíření značek#Rozšíření a šablony

"NaodW..." nebo "UNIQ..."

Vaše rozšíření (nebo jiné nainstalované) možná používá funkci parse() místo recursiveTagParse(). Poté jej změňte na recursiveTagParse.


Jak mohu ve svém rozšíření určit, zda je článek chráněn nebo ne?

Použijte třídu Title a metodu isProtected( ), např.

function extensionFunction() {
   # Předpokládejme, že $title je objekt title
   if( $title->isProtected( 'edit' ) ) {
      # Chráněno před úpravami, dělejte jiné věci
   } else {
      # Nechráněno před úpravami
   }
}

Jaká oprávnění mám použít pro složku rozšíření?

Všechny skripty ve struktuře /wiki musí být čitelné a spustitelné uživatelem, pod kterým PHP běží. Všechny perm jsou obvykle 755 a vlastník/skupina je jiný uživatel. Soubor LocalSettings.php je vytvořen skriptem při instalaci a bude tedy příkladem nastavení zbytku.

Jak dosáhnu toho, aby se mé rozšíření zobrazovalo na Special:Version?

Podívejte se na stránku Příručka:Vývoj rozšíření#Registrace funkcí s MediaWiki