Modulo:Passa argomenti
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:Passa argomenti/man (modifica · cronologia)
Sandbox: Modulo:Passa argomenti/sandbox (modifica · cronologia) · Sottopagine: lista · Test: Modulo:Passa argomenti/test (modifica · cronologia · esegui)
Modulo per richiamare un template dall'interno di un altro template, passandogli tutti gli argomenti ricevuti.
Esempio: all'interno del template:Giocatore per richiamare il sottotemplate template:Giocatore/Risultati, si scriverà:
{{#invoke:Passa argomenti|main|Template:Giocatore/Risultati}}
Altri parametri possono essere passati anche direttamente nella chiamata. Se lo stesso parametro è passato in entrambi i modi, quello nell'invoke ha la precedenza su quello ricevuto dal template chiamante. Funziona anche con i parametri ordinali (quello dopo il nome del template è il primo). Esempio con due parametri predefiniti:
{{#invoke:Passa argomenti|main|Template:Giocatore/Risultati|par1=123|par2=abc}}
--[[
* Espande la pagina specificata come primo parametro, passandogli gli argomenti del chiamante.
I parametri (nominali o ordinali) possono essere passati anche direttamente dalla funzione, in tal caso hanno la precedenza
]]--
local p = {}
function p.main(frame)
local nometemplate = frame.args[1]
local argpassati = {}
for k,v in pairs(frame:getParent().args) do
argpassati[k] = v
end
frame.args[1] = nil
for k,v in pairs(frame.args) do
if tonumber(k) ~= nil then k = k-1 end
argpassati[k] = v
end
return mw.getCurrentFrame():expandTemplate {
title = nometemplate,
args = argpassati
}
end
return p