Modulo:Bio/Parametri/sandbox: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
aggionto controllo dipendenze parametri
aggiornato alla versione corrente, +Pseudonimo
 
(Una versione intermedia di un altro utente non mostrate)
Riga 6:
]]
config.params = {
["Titolo"] = true,
["Nome"] = true,
["Cognome"] = true,
["PostCognomePseudonimo"] = true,
["PostCognomeVirgolaPostPseudonimo"] = true,
["ForzaOrdinamentoPostCognome"] = true,
["PreDataPostCognomeVirgola"] = true,
["SessoForzaOrdinamento"] = true,
["LuogoNascitaPreData"] = true,
["LuogoNascitaLinkSesso"] = true,
["LuogoNascitaAltLuogoNascita"] = true,
["GiornoMeseNascitaLuogoNascitaLink"] = true,
["AnnoNascitaLuogoNascitaAlt"] = true,
["NoteNascitaGiornoMeseNascita"] = true,
["LuogoMorteAnnoNascita"] = true,
["LuogoMorteLinkNoteNascita"] = true,
["LuogoMorteAltLuogoMorte"] = true,
["GiornoMeseMorteLuogoMorteLink"] = true,
["AnnoMorteLuogoMorteAlt"] = true,
["NoteMorteGiornoMeseMorte"] = true,
["PreAttivitàAnnoMorte"] = true,
["EpocaNoteMorte"] = true,
["Epoca2PreAttività"] = true,
["AttivitàEpoca"] = true,
["Attività2Epoca2"] = true,
["Attività3Attività"] = true,
["AttivitàAltreAttività2"] = true,
["NazionalitàAttività3"] = true,
["NazionalitàNaturalizzatoAttivitàAltre"] = true,
["CittadinanzaNazionalità"] = true,
["PostNazionalitàNazionalitàNaturalizzato"] = true,
["CategorieCittadinanza"] = true,
["FineIncipitPostNazionalità"] = true,
["PuntoCategorie"] = true,
["ImmagineFineIncipit"] = true,
["DidascaliaPunto"] = true,
["Didascalia2Immagine"] = true,
["DimImmagineDidascalia"] = true,
["Didascalia2"] = true,
["DimImmagine"] = true,
["CognomePrima"] = true,
["Debug"] = true
}
 
Line 60 ⟶ 64:
Deve ritornare true se il valore del parametro è valido altrimenti false.
Esempio: scommentando la seguente funzione checkNome e aggiungendo la riga:
{ param = "Nome", valuetest = checkNome },
saranno categorizzate come errore la pagine con Nome contenente "soprannominato" o "al secolo".
Inoltre non verrà visualizzato il messaggio di errore (errmsg è assente).
]]
--local function checkNome(value, args)
-- return value:find("soprannominato") == nil and
-- value:find("al secolo") == nil
--end
 
local function checkEpoca(value, args)
return mw.loadData("Modulo:Bio/Configurazione").epoche[value] ~= nil
end
 
local function checkLen1000(value, args)
-- ignora eventuali tag span, solitamente generati da template inclusi
return value:gsub("<span.+</span>", ""):len() < 1000
end
 
local function hasLuogoNascitacheckQuestionMark(value, args)
return value ~= "?"
end
 
local function hasLuogoMortecheckEllipsis(value, args)
return value ~= "..."
end
 
local function hasEpocacheckPeriod(value, args)
return not value:match("^%.")
end
 
-- Applicato su AnnoMorte per verificare che in presenza di AnnoNascita sia uguale o posteriore
local function checkMorteDopoNascita(value, args)
local annoNascita, annoMorte
local ret = true
if args["AnnoNascita"] then
annoNascita = tonumber(args["AnnoNascita"])
annoMorte = tonumber(value)
if annoNascita and annoMorte then
ret = annoMorte >= annoNascita
end
end
return ret
end
 
-- Per controllare la dipendenza da un altro parametro
local function hasLuogoNascita(value, args)
local function hasParam(param)
return args["LuogoNascita"] ~= nil
return function(value, args)
return args["LuogoNascita"param] ~= nil
end
end
 
-- Per controllare il conflitto con un altro parametro
local function hasLuogoMorte(value, args)
local function unusedParam(param)
return args["LuogoMorte"] ~= nil
return function(value, args)
return args["LuogoMorte"param] ~== nil
end
end
 
-- Per controllare che un altro parametro abbia valore diverso
local function hasEpoca(value, args)
local function diffParam(param)
return args["Epoca"] ~= nil
return function(value, args)
return value ~= args[param]
end
end
 
config.validators = {
{ param = "Sesso", valuetest = "^[MF]$", errmsg = "il valore del parametro Sesso non è valido, accettato solo 'M' o 'F'" },
{ param = "Epoca", valuetest = checkEpoca, errmsg = "il valore del parametro Epoca non è valido" },
{ param = "Epoca2", valuetest = checkEpoca, errmsg = "il valore del parametro Epoca2 non è valido" },
{ param = "Epoca2", valuetest = hasEpocahasParam("Epoca"), errmsg = "Epoca2 è usato ma Epoca è vuoto" },
{ param = "PuntoEpoca2", valuetest = diffParam("^no$Epoca"), errmsg = "ilEpoca2 valoreha dello parametrostesso Punto non è valido, accettatovalore solodi 'no'Epoca" },
{ param = "DimImmaginePunto", valuetest = "^%d+no$", errmsg = "il valore del parametro DimImmaginePunto non è valido, inserire la dimensioneaccettato senzasolo px'no'" },
{ param = "CategorieDimImmagine", valuetest = "^no%d+$", errmsg = "il valore del parametro CategorieDimImmagine non è valido, accettatoinserire la dimensione solosenza 'no'px" },
{ param = "PostNazionalitàCategorie", valuetest = checkLen1000"^no$", errmsg = "il valore del parametro Categorie non è valido, accettato solo 'no'" },
{ param = "PostNazionalità", valuetest = checkPeriod, errmsg = "PostNazionalità inizia con il punto. Spostarne il contenuto alla riga successiva dopo la chiusura del template Bio" },
{ param = "FineIncipit", valuetest = checkLen1000 },
{ param = "AnnoMortePostNazionalità", valuetest = checkMorteDopoNascita, errmsg = "il valore del parametro AnnoMorte è anteriore ad AnnoNascita"checkLen1000 },
{ param = "LuogoNascitaLinkFineIncipit", valuetest = hasLuogoNascita, errmsg = "LuogoNascitaLink è usato ma LuogoNascita è vuoto"checkLen1000 },
{ param = "LuogoNascitaAltPostCognomeVirgola", valuetest = hasLuogoNascitaunusedParam("PostCognome"), errmsg = "LuogoNascitaAltPostCognome e èPostCognomeVirgola usatonon mapossono LuogoNascitaessere èutilizzati vuotoinsieme" },
{ param = "LuogoMorteLinkAnnoNascita", valuetest = hasLuogoMortecheckQuestionMark, errmsg = "LuogoMorteLinkil èvalore usato'?' main LuogoMorteAnnoNascita non è valido: se sconosciuto va lasciato vuoto e il template visualizzerà i punti di sospensione" },
{ param = "LuogoMorteAltAnnoNascita", valuetest = hasLuogoMortecheckEllipsis, errmsg = "LuogoMorteAltil èvalore usato'...' main LuogoMorteAnnoNascita non è valido: se sconosciuto va lasciato vuoto e il template visualizzerà i punti di sospensione" },
{ param = "AnnoMorte", valuetest = checkEllipsis, errmsg = "il valore '...' in AnnoMorte non è valido: se sconosciuto va utilizzato '?' e il template visualizzerà i punti di sospensione" },
{ param = "AnnoMorte", valuetest = checkMorteDopoNascita, errmsg = "il valore del parametro AnnoMorte è anteriore ad AnnoNascita" },
{ param = "LuogoNascitaLink", valuetest = hasParam("LuogoNascita"), errmsg = "LuogoNascitaLink è usato ma LuogoNascita è vuoto" },
{ param = "LuogoNascitaLink", valuetest = diffParam("LuogoNascita"), errmsg = "LuogoNascitaLink va usato solo se diverso da LuogoNascita" },
{ param = "LuogoNascitaAlt", valuetest = hasParam("LuogoNascita"), errmsg = "LuogoNascitaAlt è usato ma LuogoNascita è vuoto" },
{ param = "LuogoMorteLink", valuetest = hasParam("LuogoMorte"), errmsg = "LuogoMorteLink è usato ma LuogoMorte è vuoto" },
{ param = "LuogoMorteLink", valuetest = diffParam("LuogoMorte"), errmsg = "LuogoMorteLink va usato solo se diverso da LuogoMorte" },
{ param = "LuogoMorteAlt", valuetest = hasParam("LuogoMorte"), errmsg = "LuogoMorteAlt è usato ma LuogoMorte è vuoto" },
{ param = "LuogoMorte", valuetest = hasParam("AnnoMorte"), errmsg = "LuogoMorte è usato ma AnnoMorte è vuoto" },
{ param = "GiornoMeseMorte", valuetest = hasParam("AnnoMorte"), errmsg = "GiornoMeseMorte è usato ma AnnoMorte è vuoto" },
{ param = "Attività3", valuetest = hasParam("Attività2"), errmsg = "Attività3 è usato ma Attività2 è vuoto" }
}