Modulo:String/sandbox: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
typo |
modifico arraytostring con la sintassi più estesa |
||
Riga 404:
--[[
Funzione per unire una
Uso:
{{#invoke:String|arraytostring|
Parametri:
posizione in cui inserire l'indice
preceduti da '\', mentre
separatore: La stringa da inserire tra ogni valore
congiunzione: La stringa da inserire invece di separatore tra l'ultimo e il penultimo valore. Se
non precisato viene usato il valore di separatore
prefazione: eventuale stringa che precede l'unione delle stringhe
postfazione: eventuale stringa che segue l'unione delle stringhe
lista: se valorizzata a 'infobox' imposta l'unione come una lista, eccetto che nel caso ci sia
solo un elemento (in questo caso separatore/congiunzione/prefazione/postfazione sono ignorati)
Nmin = indice iniziale da cui partire a scandire i parametri (di default pari a 1)
Nmax = indice massimo a cui arrivare con i parametri (se non precisato illimitato)
{{#invoke:string:arraytostring|par1=var#|separatore=,|congiunzione=#32;e#32;}}
]]
function str.arraytostring(frame)
end▼
local separatore = new_args['separatore'] or ""▼
local congiunzione = new_args['congiunzione'] or separatore▼
if not value and index == 1 then▼
end▼
end▼
return mw.text.listToText(vars, separatore, congiunzione)▼
▲--msg: il messaggio (cioè la riga unitaria) in cui eventuali caratteri '{', '}' dovranno essere
▲-- I valori da sostituire sono da inserire come $n ($1 sarà sostituito dal
▲-- valore di par1, $2 dal valore di par2)
▲-- Esempi di chiamata:
▲-- {{#invoke:string:value_list|par1=disegnatore #|par2=disegnatore # nota|msg = $1 <small>$2</small> }}
▲-- {{#invoke:string:value_list|par1=editore #|par2=etichetta #|par3=editore # nota| msg=$1 \{\{#if:$2{{!}}$2 <small>$3</small>\}\} }}
local base_args = frame.args
local params = {}
Line 481 ⟶ 449:
index = index + 1
end
--carico il messaggio e converto parentesi graffe
msg = base_args.msg or ''
if msg == '' then return str._error('Manca il messaggio da riprodurre.') end
msg = mw.ustring.gsub(msg, '\\{', '{')
msg = mw.ustring.gsub(msg, '\\}', '}')
--
local
-- elaboro i parametri effettivi
local args = frame:getParent().args
local index = tonumber(base_args.Nmin) or 1
while true do
if
local values = {}
local found = false
Line 502 ⟶ 470:
end
if not found then break end
index = index + 1
end
if #
-- carico separatori, congiunzione, prefazione e postazione
local prefazione, postfazione, separatore, congiunzione = '', '', '', ''
local lista = base_args.lista or ''
if lista == 'infobox' then
prefazione = '<UL><LI>'
postazione = '</LI>\n</UL>'
separatore = '</LI>\n<LI>'
congiunzione = separatore
▲ end
prefazione = base_args.prefazione or ''
postfazione = base_args.postfazione or ''
▲ end
end
|