Modulo:String/sandbox: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
altro test |
ops sbagliato versione |
||
Riga 410:
function Param.new(par_name, alt_name)
if par_name ~= "$index" and not mw.ustring.find(par_name, '#') then par_name = par_name .. '#' end;
return setmetatable({
name = par_name,
Riga 419:
function Param:get_other_value(args, index)
if par_name == '$index' then
return args[mw.ustring.gsub(self.name, '#', tostring(index), 1)] or ''▼
return tostring(index), true
else▼
▲ return args[mw.ustring.gsub(self.name, '#', tostring(index), 1)] or '', false
end▼
end
function Param:get_first_value(args, index, base_index)
if
return
▲ else
return args[mw.ustring.gsub(self.name, '#', tostring(index), 1)] or args[self.alt] or ''▼
end
if index == base_index then
return args[mw.ustring.gsub(self.name, '#', tostring(index), 1)] or args[self.base_name] or args[self.alt] or '', false
else
end
end
setmetatable(Param, { __call = function(_, ...) return Param.new(...) end })
Line 477 ⟶ 485:
Uso:
{{#invoke:String|arraytostring|par1=xxx|par2=xxx....|parn=xxxx|msg=msg|
Parametri:
Line 528 ⟶ 536:
local message = Message(msg)
elements = {}
-- carico gli altri parametri di formattazione
local Nmax = tonumber(base_args.nmax) or 0
Line 538 ⟶ 544:
local found = false
for i, param in ipairs(params) do
local v, is_index = param:get_first_value(args, index, base_index)
if not(is_index) and v ~= '' then found = true end
message:add_value(v)
end
Line 552 ⟶ 558:
found = false
for i, param in ipairs(params) do
local v, is_index = param:get_other_value(args, index)
if not(is_index) and v ~= '' then found = true end
message:add_value(v)
end
Line 638 ⟶ 644:
found = false
for i = index, index+par_number-1 do
message:add_value(args[i] or '')
if args[i] then
found = true
Line 667 ⟶ 673:
congiunzione = base_args.congiunzione or separatore
end
return pre .. mw.text.listToText(elements, separatore, congiunzione) .. post
end
|