Extension:Variables
Variables Stav rozšíření: stabilní |
|
---|---|
Implementace | Funkce analyzátoru |
Popis | Zavádí funkce analyzátoru (parseru) pro práci s proměnnými v rozsahu stránky. |
Autoři |
|
Správci | MGChecker |
Nejnovější verze | 2.5.1 (2019-07-11) |
MediaWiki | 1.29+ |
PHP | 5.5+ |
Změny v databázi | Ne |
Licence | Licence ISC |
Stáhnout | README RELEASE-NOTES |
|
|
Čtvrtletní stahování | 85 (Ranked 63rd) |
Veřejné wiki používající rozšíření | 1,808 (Ranked 201st) |
Přeložte rozšíření Variables, používá-li lokalizaci z translatewiki.net | |
Vagrant role | variables |
Problémy | Otevřené úkoly · Nahlásit chybu |
InternalParseBeforeSanitize
pro MediaWiki 1.35 - MediaWiki 1.38 nebo chybějící funkci analyzátoru #var_final
v MediaWiki 1.39 +, aktualizujte prosím na nejnovější verzi (prozatím master
větev). Další informace naleznete na stránkách úkol T276627 a úkol T250963.Rozšíření Variables umožňuje definovat proměnnou na stránce, použít ji později na stejné stránce nebo zahrnutých šablonách, změnit její hodnotu, případně na hodnotu danou výrazem ve smyslu staré hodnoty atd. .
Podobá se šabloně, je pouze velmi jednoduché a má rozsah pouze na jednu stránku. Takže na stránce můžete použít mnoho proměnných, aniž byste zpomalili wiki s velkým množstvím šablon. Pro dosažení nejlepších výsledků zkombinujte toto rozšíření s rozšířením ParserFunctions .
Přiřazení hodnoty proměnné
#vardefine
{{#vardefine:variablename | specifiedvalue }}
Přiřadí hodnotu specifiedvalue (již existující nebo tímto zavedenou) proměnné variablename.
- Example:
{{#vardefine:iconwidth|25}}
vytváříiconwidth = 25
#vardefineecho
{{#vardefineecho:variablename | specifiedvalue }}
Funguje přesně jako #vardefine
, ale vytiskne se ovlivněná hodnota.
- Příklad: vytváří
iconwidth = {{#vardefineecho:iconwidth|25}}
Použití hodnoty proměnné
#var
Hodnota proměnné variablename je vytvořena pomocí
{{#var:variablename}}
Pokud není definována, vytvoří se prázdný řetězec. Nezobrazuje chybovou zprávu.
Je možné získat výchozí hodnotu pro případ, že proměnná není definovaná nebo je neplatná:
{{#var:variablename | defaultvalue }}
To je ekvivalentní s:
{{#if: {{#var:variablename }} | {{#var:variablename }} | defaultvalue }}
ale je to mnohem kratší a lépe uspořádáno. Před verzí 2.0 však byla výchozí hodnota vždy rozšířena. Od verze 2.0 se standardně rozšiřuje pouze v případě, že je skutečně používána.
Hodnotu lze použít ve funkcích analyzátoru atd.
#varexists
{{#varexists:variablename }}
vrátí 1, pokud je proměnná již definována. Pokud proměnná není definována, návratová hodnota je neplatná.
Podporuje druhý a třetí parametr pro nahrazení těchto hodnot.
{{#varexists:variablename | if-value | else-value }}
To je ekvivalentní s:
{{#if: {{#varexists: variablename }} | if-value | else-value }}
ale je to mnohem kratší a lépe uspořádáno. Před verzí 2.5 však byly obě vždy rozšířeny. Od verze 2.5 se hodnoty if a else rozšíří pouze tehdy, když jsou jejich hodnoty skutečně zadány.
#var_final
Experimentální funkce představená ve Variables 2.0. Tato funkce vypíše konečnou, poslední hodnotu proměnné na konci vykreslování stránky. Hodnota bude přirozeně vložena poté, co analyzátor projde celým označením wiki, takže tuto funkci nelze použít v jiných funkcích, protože se očekává, že bude použita správná hodnota. Příklad:
{{#var_final:variablename | defaultvalue }}
Hodnota default (výchozí) bude použita, pokud proměnná ve fázi vykreslování poslední stránky neexistuje nebo pokud je její hodnotou prázdný řetězec. Výchozí hodnota se rozšíří přímo tam, kde je funkce použita, takže parametr bude rozšířen, i když to nebude potřeba.
Příklady
Pro použití #expr
musí být také nainstalováno ParserFunctions .
Výpočet x = 2*a + b
:
{{#vardefine:x|{{#expr:2*{{#var:a}}+{{#var:b}}}}}}
Přičíst jedna k n:
{{#vardefine:n|{{#expr:{{#var:n}}+1}}}}
Instalace
- Stáhněte soubor/y a vložte je do adresáře pojmenovaného
Variables
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/Variables - Na konec vašeho souboru LocalSettings.php přidejte následující kód:
wfLoadExtension( 'Variables' );
- Nakonfigurujte podle potřeby
- Dokončeno – Přejděte na stránku Special:Version vaší wiki a zkontrolujte, zda bylo rozšíření úspěšně nainstalováno.
Konfigurace
Toto rozšíření poskytuje dva konfigurační parametry:
$egVariablesAreVolatile
- Umožňuje zakázat rámec analyzátoru, který je rozšířením označen jako nestálý, tj. zakázat ukládání šablon do mezipaměti.
- Výchozí:
true;
$egVariablesDisabledFunctions
- Umožňuje zakázat určité funkce analyzátoru poskytované tímto rozšířením.
- Výchozí:
[];
- Příklad:
[ 'var_final', 'vardefineecho' ];
Kompatibilita
Doporučená verze rozšíření Variables pro poslední vydání MediaWiki je uvedena níže. Starší verze rozšíření mohou fungovat také, ale nejsou testovány pro nová vydání MediaWiki.
MediaWiki version | Variables version |
---|---|
1.19–1.22 | 2.1.x |
1.23–1.28 | 2.2.x |
1.29–1.34 | 2.5.x |
1.35–1.39 | 2.5.x (deprecated) |
1.40+ | unsupported (WIP) |
Alternativy
Protože toto rozšíření nebude povoleno pro wiki provozované nadací Wikimedia Foundation (WMF), zde jsou některé alternativy:[1][2][3][4]
- Pokud používáte proměnné jako mezipaměť pro složité operace, můžete převést sekci, kde je potřebujete, na šablonu a místo toho předat požadované informace jako parametry šablony. Toto bude fungovat, dokud nedosáhnete limitu hloubky rozšíření, které lze v případě potřeby zvýšit.
- Pokud používáte proměnné k provádění složitějších operací se šablonami, než je možné s jednoduchým Rozšíření:ParserFunctions , a pokud máte dostatečná oprávnění na serveru, můžete místo toho použít funkci Lua Scribunto. Možná nebudete moci nainstalovat Scribunto na sdílený hosting. Všimněte si, že to nepřidává podporu pro globální proměnné. Extension:VariablesLua však přidává rozhraní Scribunto pro rozšíření Variables.
- Nepoužívejte proměnné, místo toho duplikujte informace, které potřebujete, jako proměnnou. Pokud jsou tyto informace získány složitým voláním šablony, může utrpět výkon. To bude fungovat, dokud nedosáhnete limitu počtu uzlů.
- Pokud potřebujete proměnné pouze pro automatické číslování, můžete se podívat na Extension:NumerAlpha .
Související odkazy
- Rozšíření:PhpTags
- Extension:MyVariables – vytváří nové proměnné ve smyslu MediaWiki
- Extension:Loops – obsahuje funkce, které umožňují používat smyčky
- Rozšíření:Arrays – vytváří pole a poskytuje funkce pole (jako je vyhledávání, rozdělení a řazení) a operace nastavení (jako je intersect, union a diff)
- Extension:HashTables – nové funkce parseru pro práci s hashovacími tabulkami v MediaWiki
Poznámky pod čarou
- ↑ 1.0 1.1 phab:T9865
- ↑ 2.0 2.1 phab:T65324
- ↑ 3.0 3.1 phab:T113859
- ↑ 4.0 4.1 phab:T151192
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
- Parser function extensions/cs
- ISC licensed extensions/cs
- Extensions in Wikimedia version control/cs
- ParserClearState extensions/cs
- ParserFirstCallInit extensions/cs
- All extensions/cs
- Extensions included in BlueSpice/cs
- Extensions included in Canasta/cs
- Extensions included in Fandom/cs
- Extensions included in Miraheze/cs
- Extensions included in Open CSP/cs
- Extensions included in ProWiki/cs
- Extensions included in semantic::core/cs
- Extensions included in Telepedia/cs
- Extensions included in wiki.gg/cs
- Extensions included in WikiForge/cs
- Modifiable variables extensions/cs