Rozšíření FAQ

From mediawiki.org
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 (pomocí analyzátoru uvedeného v parametru nebo $wgParser).

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