Modulo:Navbox: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
sistema per evitare problemi quando attorno ai {{,}} vengono inseriti degli spazi o andate a capo
non è efficiente iterare su tutta la table per ogni parametro listN/groupN del modulo, fix ripetizione funzione getListIds/getIds
Riga 46:
end
 
-- Ritorna una sequence contenente gli ID degli argomentidei listN presenti, ordinata e senza duplicati.
-- Se withGroup è true, controlla anche i groupN.
local function getListIdsgetIds(args, withGroup)
local retids = {}
local ret = {}
 
-- siccome Lua ha solo le table e non i set (elementi unici), prima popola ids usando le chiavi
for k, v_ in pairs(args) do
local id = k:match('^list(%d+)$') or (withGroup and k:match('^group(%d+)$'))
if id then
table.insert(ret, ids[tonumber(id))] = 1
end
end
table.sort(ret)
 
-- quindi ritorna una sequence fatta delle chiavi della table ids
return ret
for k, _ in pairs(argsids) do
end
table.sortinsert(ret, k)
 
-- Ritorna l'array degli N dei groupN e/o listN presenti, ordinato e senza doppioni
local function getIds(args)
local ret = {}
for k, _ in pairs(args) do
local id = k:match('^list(%d+)$') or k:match('^group(%d+)$')
if id then
local found = false
id = tonumber(id)
for _, v in ipairs(ret) do
if v == id then
found = true
break
end
end
if not found then table.insert(ret, id) end
end
end
table.sort(ret)
 
return ret
end
Line 92 ⟶ 79:
-- permettendo di eseguire i test senza controllare anche i css.
local function disableCSS(tableNode)
local mt = getmetatable(tableNode)
mt.__index.css = function(t, name, val) return t end
end
 
Line 232 ⟶ 219:
}
-- crea una riga per ogni groupN/listN
rowIds = getIds(self.args, true)
for _, id in ipairs(rowIds) do
local trNode = self.tableNode:tag('tr')
Line 320 ⟶ 307:
}
-- crea una row per ogni listN
listIds = getListIdsgetIds(self.args)
for _, id in ipairs(listIds) do
local trNode = self.tableNode:tag('tr')