Manual:Magic words/cs



Magická slova (magic words) je technika pro mapování různých textových řetězců wiki na jediné ID, které je spojeno s funkcí. Tuto techniku používají jak proměnné, tak funkce analyzátoru. Veškerý text namapovaný na toto ID bude nahrazen návratovou hodnotou funkce. Mapování mezi textovými řetězci a ID je uloženo v proměnné  v souboru, který lze načíst pomocí.

Výchozí magická slova jsou implementována v.



Jak fungují kouzelná slůvka
Kdykoli MediaWiki najde text mezi dvojitými složenými závorkami, musí rozhodnout, zda XXX je proměnná, funkce analyzátoru nebo šablona. Za tímto účelem položí řadu otázek:


 * 1) Má přidružené ID kouzelného slova? Jako první krok při řešení označení tvaru  se MediaWiki pokouší přeložit XXX na ID kouzelného slova. Překladovou tabulku definuje $magicWords.
 * 2) *Pokud není k XXX přidruženo žádné ID magického slova, předpokládá se, že XXX je šablona.
 * 3) Je to proměnná? Pokud je nalezeno ID kouzelného slova, MediaWiki dále zkontroluje, zda má nějaké parametry.
 * 4) *Pokud nejsou nalezeny žádné parametry, MediaWiki zkontroluje, zda bylo ID kouzelného slova deklarováno jako ID proměnné. Pro kontrolu načte seznam magických slov sloužících voláním . Tato metoda získává svůj seznam ID proměnných z pevně zakódovaného seznamu ID proměnných (viz ) a ze seznamu ID uživatelských proměnných poskytovaných všemi funkcemi připojenými k háčku.
 * 5) **Pokud bylo ID magického slova klasifikováno jako proměnná, MediaWiki zavolá funkce spojené s názvem události, dokud se nenajde taková, která rozpozná magické slovo a dokáže vrátit jeho hodnotu.
 * 6) Je to funkce analyzátoru? Pokud existují nějaké parametry nebo pokud ID kouzelného slova chybí v seznamu ID proměnných kouzelných slov, pak MediaWiki předpokládá, že kouzelné slovo je funkce analyzátoru nebo šablona. Pokud je ID magického slova nalezeno v seznamu funkcí analyzátoru deklarovaných pomocí volání, je považováno za funkci analyzátoru a je vykresleno pomocí funkce s názvem  . V opačném případě se předpokládá, že se jedná o šablonu.
 * 1) Je to funkce analyzátoru? Pokud existují nějaké parametry nebo pokud ID kouzelného slova chybí v seznamu ID proměnných kouzelných slov, pak MediaWiki předpokládá, že kouzelné slovo je funkce analyzátoru nebo šablona. Pokud je ID magického slova nalezeno v seznamu funkcí analyzátoru deklarovaných pomocí volání, je považováno za funkci analyzátoru a je vykresleno pomocí funkce s názvem  . V opačném případě se předpokládá, že se jedná o šablonu.
 * 1) Je to funkce analyzátoru? Pokud existují nějaké parametry nebo pokud ID kouzelného slova chybí v seznamu ID proměnných kouzelných slov, pak MediaWiki předpokládá, že kouzelné slovo je funkce analyzátoru nebo šablona. Pokud je ID magického slova nalezeno v seznamu funkcí analyzátoru deklarovaných pomocí volání, je považováno za funkci analyzátoru a je vykresleno pomocí funkce s názvem  . V opačném případě se předpokládá, že se jedná o šablonu.

{{note|1= Podle konvence:


 * Kouzelná slova nazývaná proměnné jsou velkými písmeny, rozlišují se malá a velká písmena a neobsahují mezery.
 * Parserfunctions are prefixed with a hash sign ( {{# ), are case insensitive and do not include space characters.

Toto je však konvence, která se důsledně nepoužívá (z historických důvodů).


 * Proměnné nemají mezery, ale některé překlady proměnných v jiných jazycích mezery mají
 * Proměnné jsou obecně velká a rozlišují se velká a malá písmena, ale některé funkce analyzátoru také používají tuto konvenci.
 * Některé funkce analyzátoru začínají znakem hash, ale některé ne.

Where possible you should follow the conventions when defining or translating magic words. Magic words are higher in priority than templates, so any magic word defined, will block the usage of that defined name as a template. Following the conventions avoids adding more and more potential collisions. }}



Definování kouzelných slov
Aby kouzelná slova udělala své kouzlo, musíme definovat dvě věci:


 * mapování mezi textem wiki a ID kouzelného slova
 * mapování mezi ID magického slova a nějakou funkcí php, která interpretuje magické slovo.



Mapování textu wiki na ID kouzelných slov
Proměnná $magicWords se používá k přiřazení každého ID kouzelného slova k poli závislému na jazyce, které popisuje všechny textové řetězce mapované na ID kouzelného slova. Důležité: Tím se nastaví pouze mapování back-end i18n, stále musíte napsat jiný kód, aby MediaWiki použila magické slovo pro cokoli. Also, make sure that you initialize  as an empty array before adding language-specific values or you will get errors when trying to load the magic word and will need to rebuild your localization cache before it will work.

Prvním prvkem tohoto pole je celočíselný příznak udávající, zda magické slovo rozlišuje velká a malá písmena. Zbývající prvky jsou seznam textu, který by měl být spojen s ID magického slova. Pokud je příznak rozlišující malá a velká písmena 0, bude se shodovat jakákoli varianta názvů v poli. Je-li příznak rozlišující malá a velká písmena 1, budou s ID magického slova spojeny pouze přesné shody velkých a malých písmen. Formát je tedy

Toto přidružení vytváří $magicWords v souboru registrovaném pomocí.

V níže uvedeném příkladu španělská instalace MediaWiki spojí magické slovo ID 'MAG_CUSTOM' s "personalizado", "custom", "PERSONALIZADO", "CUSTOM" a všemi ostatními variantami případu. V anglické MediaWiki bude na 'MAG_CUSTOM' mapováno pouze "custom" v různých kombinacích případů:

Soubor :

V části souboru extension.json:

Všimněte si, že "ExampleMagic" se liší od klíče, který byste použili pro prostý internacionalizační soubor (obvykle pouze název přípony, tj. "Example"). "Magic" bylo přidáno záměrně, aby jedno nepřepisovalo druhé.



Inline PHP
Kouzelná slova můžete přidružit inline v PHP spíše než prostřednictvím souboru i18n. To je užitečné při definování háčků v, ale nemělo by se to dělat v rozšířeních.



Přiřazení ID kouzelného slova k funkci PHP
Mechanismus pro přiřazování ID kouzelných slov k funkcím vykreslování závisí na tom, zda bude kouzelné slovo použito jako funkce analyzátoru nebo proměnná. Další informace naleznete na adrese:



Lokalizace

 * Nápovědu viz Nápověda:Kouzelná slovíčka#Lokalizace.

Více o definici a použití kouzelných slov pro lokalizaci si můžete přečíst na stránkách Příručka:Zprávy API, Příručka:Jazyk#Jmenné prostory; Vyhněte se  ve zprávách.



Přepínače chování (dvojité podtržení kouzelných slov)
Přepínače chování jsou zvláštním typem kouzelných slov. Lze je rozpoznat podle použití dvojitého podtržítka (spíše než dvojitých složených závorek). Příklad:

Tato kouzelná slova obvykle nevydávají žádný obsah, ale místo toho mění chování stránky a/nebo nastavují vlastnost stránky. Tato magická slova jsou uvedena v a také na stránce Nápověda:Kouzelná slova#Přepínače chování. Účinek většiny standardních přepínačů chování je definován v. Pokud není definován žádný konkrétní efekt, kouzelné slovo jednoduše nastaví vlastnost stránky v tabulce page_props. To lze také zkontrolovat později testováním, zda je  null nebo prázdný řetězec



Přepínač vlastního chování
Zde je příklad rozšíření implementující vlastní přepínač chování __CUSTOM__

custom/extension.json - This is minimal, a real extension would fill out more fields. custom/custom.i18n.php

custom/MyHooks.php



Související odkazy

 * - Seznam proměnných jako a