Rozšíření:Variables

This page is a translated version of the page Extension:Variables and the translation is 99% complete.
Základní informace k tomuto rozšíření MediaWiki
Variables
Stav rozšíření: stabilní
Zavádění Funkce analyzátoru
Popis Zavádí funkce analyzátoru (parseru) pro práci s proměnnými v rozsahu stránky.
Napsal(i)
Spravuje/jí MGChecker
Nejnovější verze 2.5.1 (2019-07-11)
MediaWiki 1.29+
PHP 5.5+
Změny v databázi Ne
Composer mediawiki/variables
Licence Licence ISC
Zdrojový kód
README
RELEASE-NOTES
  • $wgVariablesAreVolatile
  • $wgVariablesDisabledFunctions
Čtvrtletní stahování 126 (Ranked 52nd)
Používání veřejných wikin 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
Varování Varování: This extension is incompatible with plans to parallelize parsing, as is intended by the use of Parsoid . Therefore, the future of this extension is uncertain, and it is expected to become incompatible with the standard MediaWiki parser within a few years. For further information, see úkol T250963 and Parsoid/Extension API § No support for sequential, in-order processing of extension tags .
To avoid deprecation warning about the InternalParseBeforeSanitize hook for MediaWiki 1.35 - MediaWiki 1.38 , or missing the #var_final parser function in MediaWiki 1.39 +, please update to the latest version (master branch for now). 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 Rozšíření:ParserFunctions .

Toto rozšíření nebude povoleno pro wikinách provozovaných nadací Wikimedia Foundation (WMF).[1][2][3][4] Viz alternativy.

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 Rozšíření: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žce extensions/.
    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.

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

Poznámky pod čarou