Modulo:Bio/sandbox: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
+categoria |
aggiorno |
||
(83 versioni intermedie di 6 utenti non mostrate) | |||
Riga 1:
--[[
* Modulo
*
* Nota: non esistendo in Lua una differenziazione tra metodi pubblici e privati,
Riga 6:
]]
require("
local mString = require("Modulo:String")
local mWikidata = require("Modulo:Wikidata")
local cfg = mw.loadData("Modulo:Bio/Configurazione")
local ex_attivita = mw.loadData("Modulo:Bio/Ex attività")
-- argomenti passati al template
local args
-- table per contenere gli errori
local errorTable = {}
-- nomi dei parametri per l'attività e la nazionalità
local attivitaParams = { "Attività", "Attività2", "Attività3" }
local nazionalitaParams = { "Nazionalità", "NazionalitàNaturalizzato", "Cittadinanza" }
-- =============================================================================
-- Funzioni di utilità
-- =============================================================================
-- Aggiunge l'output del [[Template:Avviso]] e una categoria di warning a errorTable
local function addAvviso(
local text
Riga 28 ⟶ 31:
title = "Avviso",
args = {
["immagine a destra"] =
}
}
table.insert(errorTable, text)
if
table.insert(errorTable, string.format("[[Categoria:%s]]\n", cfg.categorie[category]))
end
Riga 44 ⟶ 47:
local function titleExists(name)
local title = mw.title.new(name)
return title and title.exists
end
local function currentTitleEquals(name)
local title = mw.title.getCurrentTitle().text
title = mw.text.split(title, " %(")[1]
return title == name or mw.getContentLanguage():lcfirst(title) == name
end
-- Se date inizia con "1 " o "1°" restituisce una nuova data che inizia per "1º", altrimenti date
local function fixFirstOfMonth(date)
date = date:gsub("^1%s", "1º ")
date = date:gsub("^1\194\176", "1º")
return date
end
--
local function getEufonica(nextWord)
return nextWord:
end
-- Restituisce true se uno degli argomenti del modulo specificati (params) ha almeno
-- un valore tra quelli indicati (values), altrimenti false
local function argsSearch(params, values)
local ret = false
for _, param in ipairs(params) do
for _, value in ipairs(values) do
if args[param] == value then
return true
end
end
end
return false
end
-- Riconosce le ex attività previste e le restituisce senza "ex"
local function
local
attivita = attivita:match("^ex (.+)$")
if attivita then
for _, v in ipairs(ex_attivita) do
if v == attivita then
ret = attivita
break
end
end
end
return ret
end
-- =============================================================================
-- classe ArgsParser
-- =============================================================================
local ArgsParser = {}
Riga 113 ⟶ 110:
-- Parsifica i parametri passati al modulo e aggiunge eventuali categorie di errore.
--
function ArgsParser:parse(origArgs)
local paramcfg = require("Modulo:Bio/Parametri")
Riga 125 ⟶ 122:
end
else
addAvviso(cfg.warningParams.
(tonumber(k) and (v == "" and " " or v) or k ) .. "' è sconosciuto"), "unknown-params")
end
end
Riga 138 ⟶ 132:
if not self:_checkParamValue(retArgs[validator.param], validator.valuetest, retArgs) then
if validator.errmsg then
addAvviso(cfg.warningParams.
end
end
end
end
-- è ammessa l'iniziale maiuscola per i parametri per attività e nazionalità
-- (complicazione inutile. basta eliminare dalle voci le maiuscole esistenti)
local lang = mw.getContentLanguage()
for _, param in ipairs(attivitaParams) do
if retArgs[param] and not cfg.attivita_maiuscolo[retArgs[param]] then
retArgs[param] = lang:lcfirst(retArgs[param])
end
end
for _, param in ipairs(nazionalitaParams) do
retArgs[param] = retArgs[param] and lang:lcfirst(retArgs[param])
end
Riga 154:
-- Utilizzata da parse per controllare il valore di un parametro.
--
function ArgsParser:_checkParamValue(value, valueTest, otherArgs)
local ret = true
Riga 167:
end
-- =============================================================================
-- classe CategoryManager
-- =============================================================================
local CategoryManager = {}
Riga 183:
self.plurals = self:_getPluralsAttivitaNazionalita()
local title = mw.title.getCurrentTitle()
if title.namespace == 0 and title.text ~= 'Pagina principale' or args.Debug then
-- imposta la magic word defaultsort
local sortkey
if args.ForzaOrdinamento then
sortkey = args.ForzaOrdinamento:gsub("(.-)%s*,%s*(.*)", "%1 ,%2")
elseif args.Soprannome and args.Cognome and currentTitleEquals(args.Soprannome .. " " .. args.Cognome) then
sortkey = mString.collate( { args = { args.Cognome .. " ," .. args.Soprannome } } )
elseif args.Pseudonimo and currentTitleEquals(args.Pseudonimo) then
local pseudonimo = mString.collate( { args = { args.Pseudonimo } } )
if pseudonimo ~= args.Pseudonimo then
sortkey = pseudonimo
end
sortkey = mString.collate( { args = { args.Cognome .. " ," .. args.Nome } } )
elseif args.Nome then
local nome = mString.collate( { args = { args.Nome } } )
if nome ~= args.Nome then
sortkey = nome
end
end
if sortkey then
-- per i test di DEFAULTSORT in Modulo:Bio/test
table.insert(self.categories, string.format("DEFAULTSORT:%s", sortkey))
else
mw.getCurrentFrame():preprocess("{{DEFAULTSORT:" .. sortkey .. "}}")
end
end
self:_addAttivita(self.plurals)
self:_addNatiMorti()
self:_addCategory(cfg.categorie["bot"])
-- categoria di servizio per AnnoMorte (o anno corrente) - AnnoNascita > 122
local years = {
birth = tonumber(args.AnnoNascita),
}
if years.birth and years.death and years.death - years.birth > 122 then
self:_addCategory(cfg.categorie["controllo-età"])
end
-- eventuali categorie di servizio per Wikidata
if not
self:_addCategoriesWikidata()
end
end
return self
end
function CategoryManager:getCategories()
return self.categories
end
Riga 234 ⟶ 240:
end
-- Aggiunge la categoria se la pagina non ha un elemento Wikidata collegato,
-- oppure non ha la proprietà indicata.
function CategoryManager:_addCategoryWikidata(propertyId, cat)
if not mWikidata._getProperty({ propertyId }) then
self:_addCategory(cat)
end
end
-- Aggiunge eventuali categorie di servizio per Wikidata, tramite controlli
-- più avanzati di quelli che si effettuano abitualmente con {{Controllo Wikidata}}.
function CategoryManager:_addCategoriesWikidata()
-- Per Speciale:LinkPermanente/80165551#Proposta_categoria_di_servizio_biografie_con_data_di_morte_su_Wikidata
if not args.AnnoMorte and mWikidata._getProperty({ "P570" }) then
self:_addCategory("Voci con template Bio senza AnnoMorte ma con data di morte su Wikidata")
end
if mWikidata._instanceOf({ "Q5" }) then
-- Per Speciale:LinkPermanente/66620402#Add_this_text_to_Template:Bio
if args["Nazionalità"] then
self:_addCategoryWikidata("P27", "Voci con template Bio e nazionalità assente su Wikidata")
end
-- Per Speciale:LinkPermanente/80165551#Wikidata_d:Property:P21
if not args.Sesso or args.Sesso == "M" then
self:_addCategoryWikidata("P21", "Voci con template Bio e sesso (M) assente su Wikidata")
elseif args.Sesso == "F" then
self:_addCategoryWikidata("P21", "Voci con template Bio e sesso (F) assente su Wikidata")
end
-- Per Speciale:LinkPermanente/80254035#Wikidata_properties_P19.2C_P20.2C_P569.2C_P570
if args.LuogoNascita and not args.LuogoNascitaLink then
self:_addCategoryWikidata("P19", "Voci con template Bio e LuogoNascita assente su Wikidata")
end
if args.LuogoNascitaLink then
self:_addCategoryWikidata("P19", "Voci con template Bio e LuogoNascitaLink assente su Wikidata")
end
if args.LuogoMorte and not args.LuogoMorteLink then
self:_addCategoryWikidata("P20", "Voci con template Bio e LuogoMorte assente su Wikidata")
end
if args.LuogoMorteLink then
self:_addCategoryWikidata("P20", "Voci con template Bio e LuogoMorteLink assente su Wikidata")
end
if args.AnnoNascita then
self:_addCategoryWikidata("P569", "Voci con template Bio e AnnoNascita assente su Wikidata")
end
if args.AnnoMorte and args.AnnoMorte ~= "?" then
self:_addCategoryWikidata("P570", "Voci con template Bio e AnnoMorte assente su Wikidata")
end
if args.Immagine and not titleExists("File:" .. args.Immagine) then
self:_addCategoryWikidata("P18", "Voci con template Bio e Immagine assente su Wikidata")
end
-- Per Speciale:LinkPermanente/80336084#Wikidata_properties_P27
-- e Speciale:LinkPermanente/105389666#Year_in_line_278_(for_Wikidata_category)
local annoNascita = tonumber(args.AnnoNascita)
local annoMorte = tonumber(args.AnnoNascita)
if (args["Nazionalità"] == "italiano" or args["Nazionalità"] == "italiana") and
((annoNascita or 0) > 1861 or (annoMorte or 0) > 1861) then
-- Le cittadinanze "Italia" e "Regno d'Italia" non si escludono, quindi non va usato "elseif"
local cittadRegno = false
local cittadRepubblica = false
if ((annoNascita ~= nil and annoNascita < 1946) or (annoMorte ~= nil and annoMorte < 1946)) then
self:_addCategoryWikidata("P27", "Voci con template Bio e cittadinanza Regno d'Italia assente su Wikidata")
cittadRegno = true
end
if ((annoNascita or 0) > 1946 or (annoMorte or 0) > 1946) then
self:_addCategoryWikidata("P27", "Voci con template Bio e cittadinanza Italia assente su Wikidata")
cittadRepubblica = true
end
if not (cittadRegno or cittadRepubblica) then
self:_addCategoryWikidata("P27", "Voci con template Bio e Nazionalità italiana assente su Wikidata")
end
elseif args["Nazionalità"] == "statunitense" and
((annoNascita or 0) > 1776 or (annoMorte or 0) > 1776) then
self:_addCategoryWikidata("P27", "Voci con template Bio e Nazionalità statunitense assente su Wikidata")
elseif args["Nazionalità"] == "francese" and
((annoNascita or 0) > 1799 or (annoMorte or 0) > 1799) then
self:_addCategoryWikidata("P27", "Voci con template Bio e Nazionalità francese assente su Wikidata")
end
-- Per Speciale:LinkPermanente/80431600#Wikidata_properties_P106
if argsSearch(attivitaParams, { "calciatore", "ex calciatore", "calciatrice" }) then
self:_addCategoryWikidata("P106", "Voci con template Bio e Attività assente su Wikidata (calciatore)")
end
if argsSearch(attivitaParams, { "attore", "attrice" }) then
self:_addCategoryWikidata("P106", "Voci con template Bio e Attività assente su Wikidata (attore)")
end
if argsSearch(attivitaParams, { "politico", "politica" }) then
self:_addCategoryWikidata("P106", "Voci con template Bio e Attività assente su Wikidata (politico)")
end
end
end
-- Restituisce il plurale dell'attività o nil se non trovato (con eventuale warning)
function CategoryManager:_getPluralAttivita(attivita)
local plural
self.plurale_attivita = self.plurale_attivita or mw.loadData("Modulo:Bio/Plurale attività")
plural = self.plurale_attivita[isExAttivita(attivita) or attivita]
if not plural
addAvviso(cfg.warningA.
end
Riga 248 ⟶ 341:
end
--
function CategoryManager:_getPluralNazionalita(nazionalita
local plural
self.plurale_nazionalita = self.plurale_nazionalita or mw.loadData("Modulo:Bio/Plurale nazionalità")
plural = self.plurale_nazionalita[nazionalita]
if not plural
addAvviso(cfg.warningN.
end
Riga 262 ⟶ 354:
end
--
function CategoryManager:_getPluralsAttivitaNazionalita()
local plurals = {}
local attnaznecessarie = not (args.Categorie == "no" and args.FineIncipit)
-- Nazionalità può essere vuota solo quando c'è Categorie=no e FineIncipit
if not args["Nazionalità"] and
addAvviso(cfg.warningN.
end
for _, nazionalita in ipairs(nazionalitaParams) do
if args[nazionalita] then
end
end
-- Attività può essere vuota solo quando c'è Categorie=no e FineIncipit
if not args["Attività"] and
addAvviso(cfg.warningA.
end
for _, attivita in ipairs(attivitaParams) do
if args[attivita] then
end
end
return plurals
end
-- Calcola il valore di Epoca se non inserito dall'utente.
function CategoryManager:_getEpoca()
local ret
local annoNascita = tonumber(args.AnnoNascita)
local annoMorte = tonumber(args.AnnoMorte)
if not annoNascita then
annoNascita = args.AnnoNascita:match('^(%d+) a%.C%.$')
annoNascita = annoNascita and tonumber(annoNascita) * -1
end
if annoNascita and annoNascita >= 2000 then
return "2000"
end
if not annoMorte and args.AnnoMorte then
annoMorte = args.AnnoMorte:match('^(%d+) a%.C%.$')
annoMorte = annoMorte and tonumber(annoMorte) * -1
end
if annoNascita and annoMorte and
annoNascita >= -500 and annoNascita <= 2100 and
annoMorte >= -500 and annoMorte <= 2100 and
((annoNascita >= 0 and annoMorte >= 0) or (annoNascita < 0 and annoMorte < 0)) then
local sign = ''
if annoNascita < 0 then
annoNascita, annoMorte = -annoNascita, -annoMorte
sign = '-'
end
local secoloNascita = math.floor((annoNascita - 1) / 100) * 100
local secoloMorte = math.floor((annoMorte - 1) / 100) * 100
ret = secoloNascita == secoloMorte and (sign .. secoloNascita) or nil
end
return ret
end
-- Aggiunge Categoria:X dei secoli, se esistono
function CategoryManager:_addCatSecolo(catname, epoca1, epoca2)
local ok = false
for _, epoca in ipairs({ epoca1, epoca2 }) do
if epoca and titleExists("Categoria:" .. catname .. " " .. epoca) then
self:_addCategory(catname .. " " .. epoca)
ok = true
end
end
return ok
end
-- Aggiunge le categorie: Attività nazionalità [del XYZ secolo]
function CategoryManager:_addAttivita(plurals)
local catname, epoca1, epoca2, added, addatt, addnaz, add1, addbase
addatt = {}
addnaz = {}
-- se Epoca e Epoca2 non sono stati inseriti dall'utente
-- e AnnoNascita e AnnoMorte cadono nello stesso secolo
-- calcola epoca1 automaticamente
if not args.Epoca and not args.Epoca2 and args.AnnoNascita then
epoca1 = self:_getEpoca()
epoca1 = epoca1 and cfg.epoche[epoca1]
else
epoca1 = args.Epoca and cfg.epoche[args.Epoca]
epoca2 = args.Epoca2 and cfg.epoche[args.Epoca2]
end
if not epoca1 and not epoca2 then
self:_addCategory(cfg.categorie["no-epoca"])
end
if args.Categorie ~= "no" then
for _, attivita in ipairs(attivitaParams) do
if plurals[attivita] then
for _, nazionalita in ipairs(nazionalitaParams) do
if plurals[nazionalita] then
catname = plurals[attivita] .. " " .. plurals[nazionalita]
added = self:_addCatSecolo(catname, epoca1, epoca2)
-- se non è stata aggiunta la categoria per epoca1 e epoca2
-- aggiunge la cat. semplice, es. "Scrittori italiani"
if added then
add1 = true
addatt[attivita] = true
addnaz[nazionalita] = true
else
self:_addCategory(catname)
addbase = true
end
end
end
Riga 323 ⟶ 469:
end
end
-- in mancanza di "A N del S" prova "A del S" e "N del S"
for _, attivita in ipairs(attivitaParams) do
if plurals[attivita] and not addatt[attivita] then
add1 = self:_addCatSecolo(plurals[attivita], epoca1, epoca2) or add1
end
end
for _, nazionalita in ipairs(nazionalitaParams) do
if plurals[nazionalita] and not addnaz[nazionalita] then
add1 = self:_addCatSecolo(plurals[nazionalita], epoca1, epoca2) or add1
for k, v in ipairs({"cecoslovacchi", "jugoslavi", "sovietici"}) do
if plurals[nazionalita] == v and not add1 and not addbase then
self:_addCategory(plurals[nazionalita])
add1 = true
end
end
end
end
if not add1 and not addbase then
self:_addCatSecolo("Persone", epoca1, epoca2)
end
end
-- Utilizzata da addNatiMorti,
-- se titleLink o title sono nella lista di eccezioni Cat luoghi, altrimenti nil
function CategoryManager:_getCatLuoghi(titleLink, title, catPrefix)
Riga 367 ⟶ 535:
end
else
self:_addCategory(cfg.categorie["
end
Riga 437 ⟶ 605:
end
-- =============================================================================
-- classe Incipit
-- =============================================================================
local Incipit = {}
Riga 451 ⟶ 619:
self:_addNomeCognome()
self:_addNascitaMorte()
if args.Soprannome or args.Pseudonimo or args.PostCognomeVirgola then
self:_addText(",")
end
if args.FineIncipit then
if self:_needSpace(args.FineIncipit) then
self:_addText(
end
self:_addText(args.FineIncipit)
Riga 466 ⟶ 634:
args.FineIncipit == "ed" or
args.FineIncipit == ",") and
end
Riga 491 ⟶ 659:
label, count = label:gsub("^" .. labelPrefix .. " ", "")
if count == 1 then
self:_addText(labelPrefix,
end
end
if target and label then
else
end
end
Riga 517 ⟶ 685:
-- Restituisce true se text necessita di uno spazio iniziale (PostCognome, PostSoprannome, PostPseudonimo, LuogoNascitaAlt, NoteNascita, LuogoMorteAlt, NoteMorte, AttivitàAltre, PostNazionalità, FineIncipit)
function Incipit:_needSpace(text)
return mw.ustring.match(mw.ustring.sub(text, 1, 1), "%w") ~= nil or
Riga 543 ⟶ 711:
-- aggiunge anche uno spazio nel caso non usi l'apostrofo
if cfg.articoli_femminili["un"][attivita] then
article = "un "
elseif attivita and attivita:match("^[aeiou]") then
article = "un'"
else
article = "una "
end
return article
Riga 557 ⟶ 725:
if args.Didascalia then
caption = args.Didascalia
elseif args.Pseudonimo and currentTitleEquals(args.Pseudonimo) then
caption = args.Pseudonimo
elseif args.Soprannome and args.Cognome and currentTitleEquals(args.Soprannome .. " " .. args.Cognome) then
caption = args.Soprannome .. " " .. args.Cognome
elseif args.Soprannome and currentTitleEquals(args.Soprannome) then
caption = args.Soprannome
else
if args.CognomePrima and args.Nome and args.Cognome then
caption = args.Cognome ..
else
if args.Nome then
Riga 574 ⟶ 748:
self:_addImage(args.Immagine, args.DimImmagine, caption)
elseif args.Didascalia2 then
-- parentesi () extra per non
self:_addText( (cfg.didascalia2:gsub("$1", args.Didascalia2)) )
end
Riga 581 ⟶ 755:
function Incipit:_addNomeCognome()
if args.Titolo then
self:_addText(args.Titolo,
end
if args.Pseudonimo and currentTitleEquals(args.Pseudonimo) then
self:_addText("'''", args.Pseudonimo, "'''")
if args.PostPseudonimo then
if self:_needSpace(args.PostPseudonimo) then
self:_addText(" ")
end
self:_addText(args.PostPseudonimo)
end
self:_addText(", pseudonimo di ")
end
Riga 588 ⟶ 773:
if args.CognomePrima and args.Nome and args.Cognome then
self:_addText(args.Cognome,
title = "Nota nome",
args = { [1] = args.CognomePrima, [2] = args.Cognome }
})
else
local no_space
if args.Nome then
self:_addText(args.Nome)
-- niente spazio prima di Cognome se Nome termina con «d'»
no_space = mw.ustring.match(args.Nome, " d'$") and ''
end
if args.Cognome then
self:_addText(
end
end
Riga 605 ⟶ 793:
if args.PostCognomeVirgola then
self:_addText(
elseif args.PostCognome then
if self:_needSpace(args.PostCognome) then
self:_addText(
end
self:_addText(args.PostCognome)
end
if args.Soprannome then
self:_addText(", ", (not args.Sesso or args.Sesso == "M") and "detto" or "detta",
" ", "'''", args.Soprannome, "'''")
if args.PostSoprannome then
if self:_needSpace(args.PostSoprannome) then
self:_addText(" ")
end
self:_addText(args.PostSoprannome)
end
end
if args.Pseudonimo and not currentTitleEquals(args.Pseudonimo) then
self:_addText(", ", (not args.Sesso or args.Sesso == "M") and "noto" or "nota",
" anche con lo pseudonimo di ", "'''", args.Pseudonimo, "'''")
if args.PostPseudonimo then
if self:_needSpace(args.PostPseudonimo) then
self:_addText(" ")
end
self:_addText(args.PostPseudonimo)
end
end
end
Riga 618 ⟶ 826:
function Incipit:_addNascitaMorte()
-- si apre la parentesi
self:_addText(
if args.PreData then
self:_addText(args.PreData, ";
end
local datimancanti = not (args.LuogoNascita or args.GiornoMeseNascita or args.NoteNascita or args.LuogoMorte or args.GiornoMeseMorte)
local floruit = args.AnnoMorte == "?" and (args.Floruit or cfg.epoche[args.Epoca])
if args.LuogoNascita then
self:_addWlink(args.LuogoNascitaLink, args.LuogoNascita)
if args.LuogoNascitaAlt then
if self:
self:_addText(" ")
end
self:_addText(args.LuogoNascitaAlt)
end
self:_addText(
end
Riga 638 ⟶ 852:
self:_addText(args.GiornoMeseNascita)
end
self:_addText(
end
Riga 647 ⟶ 861:
self:_addText(args.AnnoNascita)
end
elseif not floruit or not datimancanti then
self:_addText("...")
end
if args.NoteNascita then
if self:_needSpace(args.NoteNascita) then
self:_addText(" ")
end
self:_addText(args.NoteNascita)
end
if args.AnnoMorte and (not floruit or not datimancanti) then
self:_addText(
if args.LuogoMorte then
self:_addWlink(args.LuogoMorteLink, args.LuogoMorte)
if args.LuogoMorteAlt then
if self:
self:_addText(" ")
end
self:_addText(args.LuogoMorteAlt)
end
self:_addText(
end
Riga 671 ⟶ 891:
self:_addText(args.GiornoMeseMorte)
end
self:_addText(
end
Riga 684 ⟶ 904:
end
end
end
end
-- se date ignote, usa Floruit o lo ricava da Epoca
if not args.AnnoNascita and args.AnnoMorte == "?" then
local fl = args.Floruit
if not fl and cfg.epoche[args.Epoca] then
fl = mw.ustring.gsub(cfg.epoche[args.Epoca], "^del ?l?'?", "")
-- se due epoche, le mette entrambe senza ripetere la parola "secolo"
if cfg.epoche[args.Epoca2] then
if fl ~= "I secolo a.C." then
fl = fl .. "|" .. mw.ustring.gsub(fl, " secolo.*$", "")
end
fl = "[[" .. fl .. "]]-[[" .. mw.ustring.gsub(cfg.epoche[args.Epoca2], "^del ?l?'?", "") .. "]]"
end
end
if fl then
if titleExists(fl) then
fl = "[[" .. fl .. "]]"
end
if not datimancanti then
self:_addText("; ")
end
self:_addText("[[floruit|fl.]] ", fl)
end
end
if args.NoteMorte then
if self:_needSpace(args.NoteMorte) then
self:_addText(" ")
end
self:_addText(args.NoteMorte)
end
-- si chiude la parentesi
self:_addText(")")
end
Riga 697 ⟶ 948:
function Incipit:_addAttivita()
local link_attivita = mw.loadData("Modulo:Bio/Link attività")
local link_nazionalita = mw.loadData("Modulo:Bio/Link nazionalità")
self:_addText(
if args["PreAttività"] then
self:_addText(args["PreAttività"],
else
self:_addText("è
if args.AnnoMorte then
self:_addText((not args.Sesso or args.Sesso == "M")
and "stato " or "stata
end
if not args.Sesso or args.Sesso == "M" then
self:_addText(self:_getArticleMan(args["Attività"]),
else
self:_addText(self:_getArticleWoman(args["Attività"]))
Riga 715 ⟶ 966:
end
local getLinkAttivita = function(attivita)
if not attivita then return end
local ex_attivita = isExAttivita(attivita)
return link_attivita[ex_attivita or attivita] or ex_attivita
end
self:_addWlink(getLinkAttivita(args["Attività"]), args["Attività"] or "", "ex")
if args["Attività2"] then
Riga 721 ⟶ 978:
self:_addText(",")
else
self:_addText(
end
self:_addText(
self:_addWlink(
end
Riga 731 ⟶ 988:
self:_addText(",")
else
self:_addText(
end
self:_addText(
self:_addWlink(
end
if args["AttivitàAltre"] then
if self:_needSpace(args["AttivitàAltre"]) then
self:_addText(
end
self:_addText(args["AttivitàAltre"])
end
self:_addText(
self:_addWlink(link_nazionalita[args["Nazionalità"]], args["Nazionalità"] or "")
if args.Cittadinanza then
self:_addText(
self:_addWlink(link_nazionalita[args.Cittadinanza], args.Cittadinanza)
end
if args["NazionalitàNaturalizzato"] then
self:_addText(
self:_addWlink("Naturalizzazione",
(not args.Sesso or args.Sesso == "M" or
(args.Sesso == "F" and self:_getArticleWoman(args["Attività"]) == "un
"naturalizzato" or "naturalizzata")
self:_addText(
self:_addWlink(link_nazionalita[args["NazionalitàNaturalizzato"]], args["NazionalitàNaturalizzato"])
end
Riga 764 ⟶ 1 021:
if args["PostNazionalità"] then
if self:_needSpace(args["PostNazionalità"]) then
self:_addText(
end
self:_addText(args["PostNazionalità"])
Riga 770 ⟶ 1 027:
end
-- =============================================================================
-- Funzioni
-- =============================================================================
local p = {}
--
function p.categorie(frame)
args = ArgsParser:new():parse(frame.args)
Riga 785 ⟶ 1 042:
end
--
function p.
-- gli errori generano avvisi, ma non interrompono l'esecuzione,
-- come avveniva nel vecchio template.
args = ArgsParser:new():parse(frame:getParent().args)
local catTable = CategoryManager:new():getCategories()
return table.concat(errorTable) ..
table.concat(catTable)
end
|