Nápověda:Moduly

Zkratka:
  • WP:LUA

Moduly jsou speciální šablony používající místo wikikódu programovací jazyk Lua. Poskytují tak oproti běžným šablonám základní programovací strukturované příkazy, ale také mnoho přidaných a pokročilých funkcí z MediaWiki rozšíření Scribunto.

Volání modulu

Jak psaní modulů, tak volání modulů je pokročilejší oproti běžným šablonám. Moduly jsou psány s ohledem na interwiki využití, jsou tedy převážně v angličtině. Zároveň běžně zajišťují mnoho funkcí najednou, stránka jednoho modulu dokáže to, co desítky různých šablon. Z toho důvodu se moduly používají pouze uvnitř šablon a pokročilých stránek wiki, nikdy ne přímo ve článcích.

Modul se do šablony vloží pomocí kouzelné funkce {{#invoke:}}. Volání modulu pak vypadá takto: {{#invoke: název modulu | název funkce v modulu | parametry }}. Stejně jako u šablon se vyplní název modulu a parametry (pojmenované i nepojmenované). Navíc proti šablonám je tu ještě název funkce. Tam je potřeba vyplnit, která z funkcí v modulu se zavolá. Alternativní zápis šablony opakovat zobrazující tři vykřičníky (!!!) pomocí funkce rep modulu String by tedy vypadal takto:

{{#invoke: string | rep | ! | 3 }}
{{opakovat| 3 | ! }}

Protože se opakování nějakého textu může hodit i při psaní článků, máme zde kromě modulu i šablonu. Pro její kratší a srozumitelnější zápis je docela dobré používat všude právě šablonu. Jsou ale funkce modulů, které přímo ve článcích běžně nevyužijeme, například funkce modulu Wikidata. Protože tyto funkce mimo šablony nemají smysl, není potřeba pro ně vytvářet ještě šablonu.

Psaní modulu

Vytvoření modulu je také složitější než vytvoření šablony. Pro začátek je potřeba mít nějaké základy programování a naučit se orientovat se v jazyce Lua. Také není na škodu mít přehled ve speciálních funkcích rozšíření Scribunto.

K přípravě modulu lze využít pískoviště Modul:Test, společně s dalšími pískovišti (Šablona:Test, Wikipedie:Pískoviště, ...), viz nápověda. Kromě toho může mít každý modul jako u šablon i vlastní pískoviště na své podstránce a navíc může mít i tzv. testovací podmodul na podstránce /testcases. Zde jsou umístěny testovací funkce využívající jeden z modulů ScribuntoUnit nebo UnitTests a vypisující výsledek testu při zavolání (běžně volané ve svojí diskusní stránce). Oproti šablonám tak lze moduly důkladně otestovat, aniž by bylo potřeba modul někde na pískovišti použít.

Základem modulu je takzvaná tabulka funkcí (f), angl. package (p). Ta obsahuje všechny funkce modulu. Každá funkce poté vezme tzv. kontext obsahující různé užitečné informace (parametry nadšablony, parametry modulu, jméno aktuální stránky, jméno modulu, atd.), zpracuje jej podle sebe a vrátí výsledek, který se vypíše. Jednoduchý modul tak vypadá např. takto:

local f = {}

function f.prvniParametr(kontext)
  return kontext.args[1]
end

return f

Funkce prvniParametr v tomto případě vrátí (vypíše) první parametr. Volání {{#invoke:můjModul|prvniParametr|text k vypsání}} tedy zobrazí „text k vypsání“.

Podrobnější nápovědu naleznete na stránce Nápověda:Vytvoření modulu.

Související články


Zdroj datcs.wikipedia.org
Originálcs.wikipedia.org/wiki/Nápověda:Moduly
Zobrazit sloupec 

Kalkulačka - Výpočet

Výpočet čisté mzdy

Důchodová kalkulačka

Přídavky na dítě

Příspěvek na bydlení

Rodičovský příspěvek

Životní minimum

Hypoteční kalkulačka

Povinné ručení

Banky a Bankomaty

Úrokové sazby, Hypotéky

Směnárny - Euro, Dolar

Práce - Volná místa

Úřad práce, Mzda, Platy

Dávky a příspěvky

Nemocenská, Porodné

Podpora v nezaměstnanosti

Důchody

Investice

Burza - ČEZ

Dluhopisy, Podílové fondy

Ekonomika - HDP, Mzdy

Kryptoměny - Bitcoin, Ethereum

Drahé kovy

Zlato, Investiční zlato, Stříbro

Ropa - PHM, Benzín, Nafta, Nafta v Evropě

Podnikání

Města a obce, PSČ

Katastr nemovitostí

Katastrální úřady

Ochranné známky

Občanský zákoník

Zákoník práce

Stavební zákon

Daně, formuláře

Další odkazy

Auto - Cena, Spolehlivost

Registr vozidel - Technický průkaz, eTechničák

Finanční katalog

Volby, Mapa webu

English version

Czech currency

Prague stock exchange


Ochrana dat, Cookies

 

Copyright © 2000 - 2024

Kurzy.cz, spol. s r.o., AliaWeb, spol. s r.o.