Rozšíření:Variables

From mediawiki.org
This page is a translated version of the page Extension:Variables and the translation is 100% complete.
Základní informace k tomuto rozšíření MediaWiki
Variables
Stav rozšíření: stabilní
Zavádění Funkce parseru
Popis Zavádí funkce analyzátoru (parseru) pro práci s proměnnými v rozsahu stránky.
Napsal(i)
Spravuje MGChecker
Nejnovější verze 2.5.1 (2019-07-11)
MediaWiki 1.29+
PHP 5.5+
Změny v databázi nedělá
Composer mediawiki/variables
Licence Licence ISC
Zdrojový kód
README
RELEASE-NOTES
  • $wgVariablesAreVolatile
  • $wgVariablesDisabledFunctions
Čtvrtletní stahování 292 (Ranked 41st)
Používání veřejných wikin 1,808 (Ranked 200th)
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.

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 .

Funkce analyzátoru #var_final je v MediaWiki 1.35 nebo vyšší zobrazena jako zastaralá kvůli změnám v analyzátoru. V této verzi však bude fungovat i nadále. Další informace naleznete na stránkách úkol T276627 a úkol T236809.
Toto rozšíření nebude povoleno pro wiki provozované 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 zavedené) 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é definovat 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/.
  • Následující kód přidejte na konec vašeho souboru LocalSettings.php :
    wfLoadExtension( 'Variables' );
    
  • Nakonfigurujte podle potřeby
  • Yes Dokončeno – Přejděte na stránku Special:Version vaší wiki a zkontrolujte, zda bylo rozšíření úspěšně nainstalováno.

Pro ty, kteří používají MediaWiki 1.30 a starší:

Výše uvedené instrukce se týkají instalace přes wfLoadExtension(), což je novější způsob instalace rozšíření. Pokud potřebujete toto rozšíření nainstalovat na starší verzi (MediaWiki 1.30 či starší), musíte místo wfLoadExtension( 'Variables' ); použít:

require_once "$IP/extensions/Variables/Variables.php";

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í.
  • Pokud používáte proměnné k provádění složitějších operací se šablonami, než je umožněno pomocí jednoduchých Rozšíření:ParserFunctions , můžete místo toho použít funkci Lua Scribunto. Všimněte si, že tato nepřidává podporu pro globální proměnné. Extension:VariablesLua však přidává rozhraní Scriunto 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ů.

Související odkazy

Reference