Questo modulo utilizza: |
Questo modulo è stato scritto per implementare le funzioni presente nel {{Tabs}}, perciò il suo funzionamento è strettamente legato alla necessità di suddetto template.
Questo modulo si avvale di funzioni interne:
categorizzazione
: La gestione di quando un lemma deve essere categorizzato o meno;categorizza
: La funzione che aggiunge materialmente la funzione;titleExists
: La funzione che valuta se una pagina esiste o meno;Questo modulo, sfrutta la funzione Differenze del Modulo:FormeFlesse per gestire la parte delle desinenze, relative allo script per scrivere le forme flesse, tramite la funzione FFLink.Differenze richiamata con la variabile "differenze
".
Variabile | Valore di riferimento | Valore del template |
---|---|---|
masc |
arg.m |
Link al lemma maschile singolare |
mascPl |
arg.mp |
Link al lemma maschile plurale |
fem |
arg.f |
Link al lemma femminile singolare |
femPl |
arg.fp |
Link al lemma femminile plurale |
masc2 |
arg.m2 |
Link al lemma maschile singolare (Forma alternativa) |
mascPl2 |
arg.mp2 |
Link al lemma maschile plurale (Forma alternativa) |
fem2 |
arg.f2 |
Link al lemma femminile singolare (Forma alternativa) |
femPl2 |
arg.fp2 |
Link al lemma femminile plurale (Forma alternativa) |
Il modulo è anche in grado di categorizzare i lemmi se all'interno della tabella ci sono delle forme flesse da scrivere, le categorie sono:
In caso un campo del template sia stato lasciato vuoto, oltre l'avviso a comparsa nel lemma, il modulo categorizzerà la pagine in Categoria:Template per le forme flesse senza informazioni
Questo modulo sfrutta il Modulo:FormeFlesse per gestire la parte delle desinenze, relative allo script per scrivere le forme flesse
-- Moduli necessari
local getArgs = require('Modulo:Arguments').getArgs -- carica i valori dei parametri
local FFLink = require('Modulo:FormeFlesse') -- carica la funzione per le desinenze delle forme flesse
-- Funzione della categorizzazione
local function categorizza(cat)
return string.format(']', mw.site.namespaces.name, cat)
end
-- funzione per rilevare se una determinata pagina esiste o no
local function titleExists(pagina)
local title = mw.title.new(pagina)
return title and title.exists
end
local p = {}
function p.Tabs(frame)
local arg = getArgs(frame)
-- variabile a me sconosciuta ma che comunque nel template c'è, io ce la metto
-- credo sia un titolo, e io la chiamo titolo, poi vediamo...
local titolo = arg or ' '
--Forme base
local masc = arg.m or arg
local mascPl = arg.mp or arg
local fem = arg.f or arg
local femPl = arg.fp or arg
-- Forme alternative
local masc2 = arg.m2 or ''
local mascPl2 = arg.mp2 or ''
local fem2 = arg.f2 or ''
local femPl2 = arg.fp2 or ''
-- Gestione per mostrare o meno le forme alternative
if masc2 ~= '' then masc2Insert = '/ ]' else masc2Insert = '' end
if mascPl2 ~= '' then mascPl2Insert = '/ ]' else mascPl2Insert = '' end
if fem2 ~= '' then fem2Insert = '/ ]' else fem2Insert = '' end
if femPl2 ~= '' then femPl2Insert = '/ ]' else femPl2Insert = '' end
-- Funzione per separare le desinenze, fondamentale per l'autocompilazione della pagina ]
-- Usa la funzione "differenze" del ]
-- IF per controllare che tutti i parametri minimi siano stati scritti
if masc == nil or mascPl == nil or fem == nil or femPl == nil then
modifica = ' '
ErrVuoti ='<strong class="error plainlinks">Uno o più parametri del {{]}} sono stati lasciati vuoti, '..modifica..'</strong>'
return ErrVuoti..''..categorizza('Template per le forme flesse senza informazioni')
else
local differenze = FFLink.Differenze(arg)
local function categorizzazione (frame)
--[=[###########################################################################
GESTIONE DELLA CATEGORIZZAZIONE
#############################################################################]=]
--Categorizzazione forme semplici
if titleExists(masc) == false then
categoriaMasc = ''..categorizza('Lemmi con forma maschile da scrivere')
else
categoriaMasc = ''
end
if titleExists(mascPl) == false then
categoriaMascPl = ''..categorizza('Lemmi con forma maschile plurale da scrivere')
else
categoriaMascPl = ''
end
if titleExists(fem) == false then
categoriaFem = ''..categorizza('Lemmi con forma femminile da scrivere')
else
categoriaFem = ''
end
if titleExists(femPl) == false then
categoriaFemPl = ''..categorizza('Lemmi con forma femminile plurale da scrivere')
else
categoriaFemPl = ''
end
-- Categorizzazione forme alternative
if titleExists(masc2) == false then
categoriaMasc2 = ''..categorizza('Lemmi con forma maschile alternativa da scrivere')
else
categoriaMasc2 = ''
end
if titleExists(mascPl2) == false then
categoriaMascPl2 = ''..categorizza('Lemmi con forma maschile plurale alternativa da scrivere')
else
categoriaMascPl2 = ''
end
if titleExists(fem2) == false then
categoriaFem2 = ''..categorizza('Lemmi con forma femminile alternativa da scrivere')
else
categoriaFem2 = ''
end
if titleExists(femPl2) == false then
categoriaFemPl2 = ''..categorizza('Lemmi con forma femminile plurale alternativa da scrivere')
else
categoriaFemPl2 = ''
end
return ''..categoriaMasc..''..categoriaMasc2..''..categoriaMascPl..''..categoriaMascPl2..''..categoriaFem..''..categoriaFem2..''..categoriaFemPl..''..categoriaFemPl2
end
--[=[###########################################################################
CREAZIONE DELLA TABELLA
#############################################################################]=]
tabs = '{| style="float:right; margin-left:0.5em; margin-bottom:0.5em;'
tabs = tabs .. 'border: 1px solid #AAAAAA; border-collapse:collapse;" cellpadding="3" rules="all"\n'
tabs = tabs .. '|- align="center"\n'
tabs = tabs .. '!'..titolo..--=]'\n'
tabs = tabs .. '! bgcolor="#FFFFE0" | \'\']\'\' \n'
tabs = tabs .. '! bgcolor="#FFFFE0" | \'\']\'\' \n'
tabs = tabs .. '|- align="center"\n'
tabs = tabs .. '! bgcolor="#FFFFE0" | \'\']\'\' \n'
tabs = tabs .. '| ] '..masc2Insert..'\n'
tabs = tabs .. '| ] '..mascPl2Insert..'\n'
tabs = tabs .. '|- align="center"\n'
tabs = tabs .. '! bgcolor="#FFFFE0" | \'\']\'\' \n'
tabs = tabs .. '| ] '..fem2Insert..'\n'
tabs = tabs .. '| ] '..femPl2Insert..'\n'
tabs = tabs .. '|}\n' ..categorizzazione(frame)
return tabs
end
end
return p