Modulo:MultiBand: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
mNessun oggetto della modifica
m modulo no globals obsoleto
 
(3 versioni intermedie di 2 utenti non mostrate)
Riga 1:
--[[
-- modulo per gestire l'omonimo template
* Modulo a supporto del template MultiBand.
-- la gestione dei parametri con numeri progressivi prende spunto da Modulo:Tracce
]]--
 
require('strict')
local args = {}
local maxInterval = 0
 
local function getValue(param, year)
result = ""
for i=1,maxInterval do
currentYear = args["anno" .. i]
if tonumber(currentYear) <= tonumber(year) then
temp = args[param .. i]
if temp ~= nil and temp ~= "" then
result = temp
end
end
end
return result
end
 
local p = {}
 
-- Dato un unico parametro posizionale che può valere "nome" o "imm"
-- e un parent arg con nome "anno", itera i parent arg "annoN" e restituisce
-- il relativo nomeN o immN se l'anno richiesto è >= di annoN,
-- altrimenti l'ultimo valore precedente noto.
function p.get(frame)
local pframepargs = frame:getParent().args
local reqAnno = tonumber(pargs.anno) or (tonumber(os.date('%Y'))+1)
for k, v in pairs( pframe.args ) do
local ret
-- mappo i parametri del template
 
if v ~=nil then args[k] = v end
for n = 1, 50 do
-- cerco l'intervallo più recente
local anno = tonumber(pargs['anno' .. n])
num = string.match(k, "anno(%d+)$")
if numanno then
if reqAnno >= anno then
if tonumber(num) > tonumber(maxInterval) then
ret = pargs[frame.args[1] .. n] or ret
maxInterval = num
end
end
else
end
break
end
end
local year = args["anno"]
 
if year == nil or year == "" then year = getValue("anno", os.date('%Y')) end
return resultret
return getValue(frame.args[1], year)
end