Modulo:Sandbox/ppong: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
mNessun oggetto della modifica |
stile |
||
Riga 1:
local getArgs= require("Modulo:Arguments").getArgs▼
local iconaArgomento= require("Modulo:Sandbox/ppong/Icona").iconaArgomento▼
require("Modulo:No globals")
Riga 177 ⟶ 174:
-- FUNZIONE DI UTILITA'
--------------------------------------------------------------------------------
▲local getArgs= require("Modulo:Arguments").getArgs
▲local iconaArgomento= require("Modulo:Sandbox/ppong/Icona").iconaArgomento
local italiano= mw.language.new("it")
local function riordinaTabella(t) -- ovvero come complicarsi la vita inutilmente
local n= 0
for _, _ in pairs(t) do
n= n + 1
end local i= 0
for ii= 1, n do
Riga 187 ⟶ 191:
i= i +1
if t[i] then
break
end end t[ii]= t[i]
end end -- CLASSE MONITORAGGIO
--------------------------------------------------------------------------------
local
function
if not self.errori then
self.errori= {}
end self.errori[#self.errori + 1]= err
-- if cat then
Riga 204 ⟶ 213:
-- self.categorie_errore[cat]= cat end
end
function
for k, v in pairs(args) do -- minuscolizza tutti i parametri
if type(k) == "string" then
Riga 214 ⟶ 224:
elseif kk ~= k then
args[kk]= v
args[k]= nil
end end end self.voti= {}
for _, s in ipairs({"accuratezza", "scrittura", "fonti", "immagini"}) do
Riga 223 ⟶ 236:
else
self:newError("valore \""..voto.."\" non riconosciuto per il campo <tt>"..s.."</tt>")
self.voti[s]= "NC"
end args[s]= nil
end for _, s in ipairs{"note", "utente", "data"} do
self[s]= args[s]
args[s]= nil
end if args.progetto and args.progetto1 then
self:newError("<tt>progetto</tt> e <tt>progetto1</tt> entrambi specificati, sono due donominazioni alternative per il primo progetto, i seguenti vanno numerati a partire da 2")
Riga 233 ⟶ 249:
elseif args.progetto then
args.progetto1= args.progetto
args.progetto= nil
end self.progetti= {}
for k, v in pairs(args) do
if string.find(k, "^progetto%d+$") then
local i= tonumber(k:match("^progetto(%d+)$"))
local uv=
if config.progetti[v] then -- questo lavoro azzoppa l'iconaArgomento
v= config.progetti[v]
Riga 244 ⟶ 261:
v= config.progetti[uv]
else
v= uv
end self.progetti[i]= v
args.k= nil
else
self:newError("parametro <tt>"..k.."</tt> non riconosciuto")
args[k]= nil
end end riordinaTabella(self.progetti)
if #self.progetti == 0 then
Riga 256 ⟶ 276:
self:newError("più di quattro progetti specificati")
for i= 5, #self.progetti do
self.progetti[i]= nil
end end end function
local out= "non compilate"
for _, v in pairs(self.voti) do
Riga 265 ⟶ 289:
for k, vvv in pairs(self.voti) do -- un livello corrispondente al più basso valore tra i voti che sono stati dati alla voce
if vv == vvv then
out= config.livelli[
self.valore_minimo= k -- serve a scrivere: "non è possibile dare un voto maggiore con tale parametro che ha un voto tanto basso"
if out ~= "non compilate" then
self.livello= out end▼
break
end
end
break
end
end
end
function
local out= self.categorie or {}
out[#out + 1]= "[[Categoria:Voci monitorate - "..self.livello.."]]"
Riga 278 ⟶ 311:
local indirizzo= "Voci monitorate Progetto "..prg.." - "..self.livello
if mw.title.makeTitle(Categoria, indirizzo):esist() then
out[#out + 1]= "[[Categoria:"..indirizzo.."]]"
end end for k, v in pairs(self.voti) do
out[#out + 1]= "[[Categoria:Voci monitorate - "..k.." "..v.."]]"
Riga 284 ⟶ 319:
local indirizzo= "Progetto:"..prg.."/Tabella monitoraggio automatico - "..self.livello
if mw.title.makeTitle(Categoria, indirizzo):esist() then
out[#out + 1]= "[[Categoria:"..indirizzo.."]]"
end end end if not self.data then
self:newError("data non specificata")
Riga 292 ⟶ 330:
out[#out + 1]= "[[Categoria:"..indirizzo.."]]"
else
self:newError("data non riconosciuta, inserire: <code>data = "..
end end self.categorie= out
end function
local out= { icone= {}, testo= {} }
for i, prg in ipairs(self.progetti) do
Riga 302 ⟶ 344:
out.testo= {"[[Progetto:"..prg.."/Monitoraggio voci|Monitoraggio "..prg.."]]"}
else
out.testo[i]= "[[Progetto:"..prg.."/Monitoraggio voci|"..prg.."]]"
end end return out
end function
local out= {}
local liv= self.livello
Riga 313 ⟶ 359:
out.icona= "<span style=\"font-weight: bold; font-size: 145%; border: 1px solid lightsteelblue; background:"..
config.colore_voti[config.livelli[liv]].."; color:blue; \"> '''<tt> [[:Categoria:Voci monitorate - "..liv.."|"..
string.gsub(liv, "livello ", "").."]]'''</tt> </span>"
end out.testo= config.descrizione_stato.livello[liv]
-- da raffinare sia per gli stub che per i monitoraggi incompleti
if self.data then
out.data= "Voce monitorata nel mese di "..self.data
end return out
end function
local out= {}
for i, s in ipairs({"accuratezza", "scrittura", "fonti", "immagini"}) do
Riga 329 ⟶ 379:
config.colore_voti[voto]..";\"> '''<tt>"..voto.."</tt>''' </span>"
outi.testo= config.descrizione_stato[s][voto]
out[i]= outi
-- end
return out end function
local prg= self:impostaRigaProgetti()
local liv= self:impostaRigaLivello()
Riga 347 ⟶ 401:
out_prg:tag("td")
:cssText("width: 35px;")
:wikitext(prg.icone[i])
end out_prg:tag("th")
:cssText("width: 100%; text-align: center;")
Riga 376 ⟶ 431:
:done()
:tag("td")
:wikitext(t.testo)
end
return out end function
-- for _, s in self.categorie_errore do
-- self.categorie[#self.categorie + 1]= s end
Riga 386 ⟶ 444:
local cat= self.categorie
if err then
out= out.."<div class=\"error\">"..table.concat(err, "<br />").."</div>"
end if cat then
if err then
cat[#cat + 1]= "[[Categoria:Errori di compilazione del template Monitoraggio]]"
end out= out..table.concat(cat, "\n")
end return out
end function
o= {} or o
setmetatable(o, self)
self.__index= self
return o
end -- FUNZIONE DI INVOKE
Riga 406 ⟶ 470:
function p.main(frame)
local args= getArgs(frame)
local out=
out:organizzaArgomenti(args)
out:assegnaLivello()
if mw.title.getCurrentTitle().namespace == 1 then
out:creaCategorie()
end return tostring(out)
end return p
|