WikiMilano - Protagonisti metropolitani è organo ufficiale dell'Osservatorio Metropolitano di Milano
non sei un utente registrato: al momento non puoi creare e modificare pagine.
Modulo:Bio/Parametri
Jump to navigation
Jump to search
La documentazione per questo modulo può essere creata in Modulo:Bio/Parametri/man
local config = {} --[[ Configurazione dei parametri del Modulo:Bio. Definisce quali sono gli unici parametri accettati. ]] config.params = { ["Titolo"] = true, ["Nome"] = true, ["NomeAnagrafe"] = true, ["Cognome"] = true, ["Pseudonimo"] = true, ["PostPseudonimo"] = true, ["PostCognome"] = true, ["PostCognomeVirgola"] = true, ["ForzaOrdinamento"] = true, ["PreData"] = true, ["Sesso"] = true, ["LuogoNascita"] = true, ["ProvinciaNascita"] = true, ["RegioneNascita"] = true, ["StatoNascita"] = true, ["LuogoNascitaLink"] = true, ["LuogoNascitaAlt"] = true, ["GiornoMeseNascita"] = true, ["AnnoNascita"] = true, ["NoteNascita"] = true, ["LuogoMorte"] = true, ["ProvinciaMorte"] = true, ["RegioneMorte"] = true, ["StatoMorte"] = true, ["LuogoMorteLink"] = true, ["LuogoMorteAlt"] = true, ["GiornoMeseMorte"] = true, ["AnnoMorte"] = true, ["NoteMorte"] = true, ["PreAttività"] = true, ["Epoca"] = true, ["Epoca2"] = true, ["Attività"] = true, ["Attività2"] = true, ["Attività3"] = true, ["AttivitàAltre"] = true, ["Nazionalità"] = true, ["NazionalitàNaturalizzato"] = true, ["Cittadinanza"] = true, ["PostNazionalità"] = true, ["Categorie"] = true, ["FineIncipit"] = true, ["Punto"] = true, ["Immagine"] = true, ["Didascalia"] = true, ["Didascalia2"] = true, ["DimImmagine"] = true, ["CognomePrima"] = true, ["Debug"] = true, ["IncaricoAutomatico"] = true, } --[[ Configurazione dei controlli effettuati sui parametri (ogni parametro può averne più di uno). Ogni controllo è configurabile tramite: * "param ": il parametro su cui effettuare il controllo * "valuetest": il controllo da effettuare sul valore del parametro, può valere: * un pattern Lua: è accettato il valore se soddisfa il pattern Lua descritto * una funzione Lua: funzione Lua che esegue il controllo di validità, da usare quando i pattern Lua non sono sufficienti o per controlli più complessi. * "errmsg": il messaggio di errore da visualizzare, è facoltativo. Se assente la voce sarà comunque categorizzata tra le voci con errori. Nel caso della funzione, deve accettare due parametri: il valore del parametro e la tabella con gli altri argomenti (per fare controlli in relazione agli altri parametri). 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 checkQuestionMark(value, args) return value ~= "?" end local function checkEllipsis(value, args) return value ~= "..." end local function checkPeriod(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 hasParam(param) return function(value, args) return args[param] ~= nil end end -- Per controllare il conflitto con un altro parametro local function unusedParam(param) return function(value, args) return args[param] == nil end end -- Per controllare che un altro parametro abbia valore diverso local function diffParam(param) 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 = hasParam("Epoca"), errmsg = "Epoca2 è usato ma Epoca è vuoto" }, { param = "Epoca2", valuetest = diffParam("Epoca"), errmsg = "Epoca2 ha lo stesso valore di Epoca" }, { param = "Punto", valuetest = "^no$", errmsg = "il valore del parametro Punto non è valido, accettato solo 'no'" }, { param = "DimImmagine", valuetest = "^%d+$", errmsg = "il valore del parametro DimImmagine non è valido, inserire la dimensione senza px" }, { param = "Categorie", valuetest = "^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 = "PostNazionalità", valuetest = checkLen1000 }, { param = "FineIncipit", valuetest = checkLen1000 }, { param = "PostCognomeVirgola", valuetest = unusedParam("PostCognome"), errmsg = "PostCognome e PostCognomeVirgola non possono essere utilizzati insieme" }, { param = "AnnoNascita", valuetest = checkQuestionMark, errmsg = "il valore '?' in AnnoNascita non è valido: se sconosciuto va lasciato vuoto e il template visualizzerà i punti di sospensione" }, { param = "AnnoNascita", valuetest = checkEllipsis, errmsg = "il valore '...' in AnnoNascita 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" } } return config