Modulo:Contròllo paràmetri sconosciûi
Instruçioìn pe l'ûzo
Quésto o l'é 'n mòdolo scrîto in Lua. E instruçioìn chi de sótta són contegnûe inta sotopàgina Modulo:Contròllo paràmetri sconosciûi/man (modìfica · stöia)
Sandbox: Modulo:Contròllo paràmetri sconosciûi/sandbox (modìfica · stöia) · Test: Modulo:Contròllo paràmetri sconosciûi/test (modìfica · stöia · ezegoi)
Quésto o l'é 'n mòdolo scrîto in Lua. E instruçioìn chi de sótta són contegnûe inta sotopàgina Modulo:Contròllo paràmetri sconosciûi/man (modìfica · stöia)
Sandbox: Modulo:Contròllo paràmetri sconosciûi/sandbox (modìfica · stöia) · Test: Modulo:Contròllo paràmetri sconosciûi/test (modìfica · stöia · ezegoi)
Quésto mòdolo o sèrve a controlâ che inte 'n çérto template no gh'é di paràmetri sconosciûi. O va dêuviòu into template, specificàndo a lìsta di nómmi di paràmetri vàlidi e o tèsto da restitoî in câxo de erô, cómme 'n mesàggio ò 'na categorîa de servìçio.
Scintàsci
{{#invoke:Contròllo paràmetri sconosciûi|check|sconosciûo=...|lìsta paràmetri vàlidi}}
Paràmetri:
- sconosciûo = o sèrve pe definî o tèsto da restitoî tùtte e vótte ch'o vêgne trovòu 'n paràmetro sconosciûo. O pêu êse prezénpio 'n mesàggio de erô ò 'na categorîa, òpû tùtte dôe ascì. O l'à cómme valô predefinîo "Trovòu _VALUE_, " (co-o _VALUE_ ch'o l'é sostitoîo da-o nómme do paràmetro sconosciûo).
- ignóravêui = se valorizòu co-in qualónque valô, prezénpio 1, o contròllo o no vêgne efetoòu in scî paràmetri sénsa valô.
- contròllopoxiçionâli = se valorizòu co-in qualónque valô, prezénpio 1, o contròllo o vêgne efetoòu in scî paràmetri poxiçionâli ascì.
- ns = quànde o paràmetro "sconosciûo" o restitoìsce 'na categorîa, a categorizaçión a l'é outomaticaménte esclûza da tùtti i namespace de discusción e da quéllo Uténte. Con quésto paràmetro o l'é pe cóntra poscìbile ativâ pe-o namespace specificòu a categorizaçión, limitàndo l'azónta da categorîa sôlo a quéllo namespace ascì. De sòlito són acetæ cómme valoî sôlo i nùmeri di namespace e no i sò nómmi scrîti pe estéizo.
Ezénpi d'ûzo
I ezénpi chi de sótta fan riferiménto a 'n ipotético template de nómme "Prêuva", ch'o l'acétta sôlo i tréi paràmetri "Nómme", "Inmàgine" e "Ànno". O còdice chi de sótta o saiéiva da inserî into template "Prêuva", mêgio se a-a fìn.
- Categorizâ tùtte e vôxe inte quæ o l'é dêuviòu o template "Prêuva" co-in paràmetro despægio da "Nómme", "Inmàgine" e "Ànno" inta categorîa "Vôxi co-o template Prêuva con paràmetri sconosciûi":
{{#invoke:Contròllo paràmetri sconosciûi|check|sconosciûo=[[Categorîa:Vôxi co-o template Prêuva con paràmetri sconosciûi]]|Nómme|Inmàgine|Ànno}}
- Vizoalizâ o mesàggio de erô "Erô: o paràmetro ... o l'é sconosciûo" inte ògni vôxe ch'a l'adêuvia o template "Prêuva" e into quæ o l'é dêuviòu 'n paràmetro despægio da "Nómme", "Inmàgine" e "Ànno":
{{#invoke:Contròllo paràmetri sconosciûi|check|sconosciûo=<span class="error">Erô: o paràmetro _VALUE_ o l'é sconosciûo</span>|Nómme|Inmàgine|Ànno}}
--[[
* Modulo per controllare se un template è utilizzato con parametri sconosciuti.
* Va usato nel template, specificando la lista dei nomi dei parametri validi e
* il testo da ritornare in caso di errore, come un messaggio o una categoria di servizio.
*
* Il modulo è stato importato da:
* http://en.wikipedia.org/w/index.php?title=Module:Check_for_unknown_parameters&oldid=669492475
]]--
local p = {}
local function isnotempty(s)
return s and s:match( '^%s*(.-)%s*$' ) ~= ''
end
function p.check (frame)
local args = frame.args
local pargs = frame:getParent().args
local ignoreblank = isnotempty(frame.args['ignoravuoti'])
local checkpos = isnotempty(frame.args['controlloposizionali'])
local knownargs = {}
local unknown = 'Trovato _VALUE_, '
local res = {}
local regexps = {}
local comments = {}
local commentstr = ''
-- è abilitato in tutti i namespace non di discussione e non utente,
-- oppure solo in quello definito nel parametro "ns"
local ns = mw.title.getCurrentTitle().namespace
if args.ns then
if ns ~= tonumber(args.ns) then
return ''
end
elseif ns == 2 or (ns % 2 == 1) then
return ''
end
-- create the list of known args, regular expressions, and the return string
for k, v in pairs(args) do
if type(k) == 'number' then
v = mw.ustring.gsub(v, '^%s*(.-)%s*$', '%1')
knownargs[v] = 1
else
if (k == 'sconosciuto' and type(v) == 'string') then
unknown = v
elseif (mw.ustring.match(k, '^regexp[%d]*$') and type(v) == 'string') then
table.insert(regexps, '^' .. v .. '$')
end
end
end
-- loop over the parent args, and make sure they are on the list
for k,v in pairs(pargs) do
if (type(k) == 'string' and knownargs[k] == nil) then
local knownflag = nil
for r = 1,#regexps do
if ( mw.ustring.match(k,regexps[r]) ) then
knownflag = 1
end
end
if ( (not knownflag) and ( (not ignoreblank) or (ignoreblank and isnotempty(v)) ) ) then
k = mw.ustring.gsub(k, '[^%w\-_ ]', '?')
local r = mw.ustring.gsub(unknown, '_VALUE_', k)
table.insert(res, r)
table.insert(comments, '"' .. k .. '"')
end
elseif (checkpos and type(k) == 'number' and knownargs[tostring(k)] == nil) then
if ( (not ignoreblank) or (ignoreblank and isnotempty(v)) ) then
local r = mw.ustring.gsub(unknown, '_VALUE_', k)
table.insert(res, r)
table.insert(comments, '"' .. k .. '"')
end
end
end
if (#comments > 0) then
commentstr = '<!-- Modulo:Contròllo paràmetri sconosciûi: ' ..
table.concat(comments, ', ') .. '-->'
end
return table.concat(res) .. commentstr
end
return p