Rozšíření FAQ
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.
$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