Modulo:Avanzamento
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:Avanzamento/man (modifica · cronologia)
Sandbox: Modulo:Avanzamento/sandbox (modifica · cronologia) · Test: Modulo:Avanzamento/test (modifica · cronologia · Esegui)
Questo modulo serve per inserire lo stato di avanzamento di un libro o un modulo. Grazie al modulo ArrotondoPercentuale, con cui questo è integrato, le percentuali delle fasi di sviluppo vengono arrotondate, ed è inoltre possibile aggiungere messaggi personalizzati e categorizzazione.
Sintassi
Essendo questo modulo un potenziamento, usando Lua, del codice del vecchio template "Avanzamento", il suo uso è strettamente connesso alle esigenze di quel template, quindi il modo principale di usarlo è proprio tramite {{Avanzamento}}
Uso diretto
Nonostante questo, in futuro potrebbe essere necessario usarlo direttamente integrandolo in un template.
{{#Invoke:Avanzamento|main|{{{1}}}}}
Per un approfondimento sui valori arrotondati, è possibile fare riferimento al manuale del modulo "ArrotondoPercentuale"
Variabili
Alcune variabili di questo modulo possono essere modificate agevolmente per aggiornare i messaggi e le categorie. I testi degli avvisi e le categorie da aggiungere sono inseriti all'interno del Modulo:Avanzamento/configurazione.
Nomi delle categorie
Descrizione | Variabile | Valore di default |
---|---|---|
Nome della categoria in cui categorizzare le pagine con le percentuali compilate in maniera errata | CatError
|
Avanzamento con errori di compilazione |
Nome della categoria in cui ctegorizzare le pagine con le percentuali arrotondate | CatArrotondo |
Testo degli avvisi
Descrizione | Variabile | Valore di default |
---|---|---|
Avviso da far apparire quando viene inserita una percentuale composta soltanto da valori numerici, omettendo il segno "%" | AvvisoError
|
Percentuale inserita in maniera errata, è necessario aggiungere il segno di percentuale ("%"). |
Testo di aiuto che appare quando viene inserita una percentale errata. La pagina verrà comunque categorizzata arrotondando.
|
AvvisoArrotondo |
La percentuale inserita ('..Digit..'%) non è stata riconosciuta, è stata quindi arrotondata a '..arrotondo..'. |
Testo da visualizzare dopo gli avvisi precedenti | LinkAiuto |
Per un approfondimento vedi "[[Aiuto:Fasi di sviluppo]]" |
Testo visualizzato come testo del link di modifica della pagina. È la variabile $2 del messaggio standard AvvisoStub | TestoLinkModifica |
Contribuisci |
Testo da visualizzare negli stub, quando la percentuale è uguale a "00%". La variabile $1 cambierà a seconda se si tratta di un modulo o di un libro. | AvvisoStub |
[[File:Wiki letter w.svg|25px|Questa pagina è uno stub]]'.. '\'\'Questo [[Aiuto:$1|$1]] è solo un [[Aiuto:Stub|abbozzo]]. '.. '$2 a migliorarlo secondo le [[Aiuto:Manuale di stile|convenzioni di Wikibooks]]\'\' |
Testo da visualizzare prima dell'AvvisoStub quando questo è frutto di un arrotondamento. Se il messaggio è lasciato vuoto, verrà automaticamente preso il valore di AvvisoArrotondo.
|
AvvisoArrotondo0 |
AvvisoError
, AvvisoArrotondo
e AvvisoArrotondo0
sono racchiusi nel tag <strong class="error">, facendo visualizzare il messaggio di colore rosso, e il font leggermente più grande e spesso
Altre variabili
Queste variabili invece sono indipendenti dal modulo, ma sono date dal Modulo:ArrotondoPercentuale.
Descrizione | Variabile | Note |
---|---|---|
Valore numerico inserito. Questo valore è interno al ArrotondoPercentuale che si occupa anche di processarlo. | Digit
|
Anche se inserito con il segno di percentuale, questo valore sarà sempre e soltanto numerico. |
Valore numerico percentuale a cui è stato arrotondato il valore inserito Digit | arrotondo |
Questa variabile, anche se interna è dipendente dal ArrotondoPercentuale, è infatti questo modulo che, arrotondando il valore dato, restituisce questo valore. |
local mArrotondo = require('Modulo:ArrotondoPercentuale')
local cfg = mw.loadData( 'Modulo:Avanzamento/configurazione' );
local p = {}
local function mess( msg, args )
return args and mw.message.newRawMessage( cfg.messages[''..msg..''], args ):plain() or cfg.messages[''..msg..''];
end
-- Funzione per la categorizzazione
local function categorizza(cat)
if cat ~= '' then
return string.format('[[%s:%s]]', mw.site.namespaces[14].name, cat)
else
return ''
end
end
function p.main(frame)
local arg = frame.args[1]
arrotondo = mArrotondo.main(frame)
PName = mw.title.getCurrentTitle()
PageName = tostring(PName)
SubPage = PName.subpageText
modifica = mw.uri.fullUrl( PageName , 'action=edit')
--[[ ===============================================================================
Inizio variabili interne per costruire i link e gli avvisi
===============================================================================]]
-- Link di modifica alla pagina
local LinkModifica = '[' .. tostring(modifica) .. ' '..cfg.messages['TestoLinkModifica']..']'
-- Controlla se siamo in una sottopagina o nella pagina principale del libro
if PageName == SubPage then
TipoPagina = 'libro'
CatTipo = 'libri'
else
TipoPagina = 'modulo'
CatTipo = 'moduli'
end
-- Variabile per creare lo "span" Che fa visualizzare il quadratino colorato dell'avanzamento
local textquality = mw.html.create( 'span' )
:attr( 'id', 'textquality' )
:addClass(arrotondo)
--[[ ===============================================================================
Costruzione avvisi
===============================================================================]]
-- Messaggio da visualizzare in caso di Stub
local AvvisoStb = '<div style="margin-left:10px;">'.. mess('AvvisoStub', {TipoPagina, LinkModifica} ) ..'</div>'..categorizza(CatTipo..' 0%')..''..tostring(textquality)
-- Messaggio da visualizzare in caso di errore
local AvvisoErr = '<strong class="error">'..cfg.messages['AvvisoError']..'</strong> '..cfg.messages['LinkAiuto']
-- Messaggio da visualizzare in caso di percentuale arrotondata
local AvvisoArr = '<strong class="error">'..mess('AvvisoArrotondo', {Digit, arrotondo}) ..'</strong> '..cfg.messages['LinkAiuto']
-- Messaggio da visualizzare in caso di percentuale arrotondata a "00%"
if cfg.messages['AvvisoArrotondo0'] == '' then -- se il messaggio è vuoto, usa quello standard per gli arrotondamenti
AvvisoArr0 = AvvisoArr
else -- altrimenti usa il messaggio personalizzato
AvvisoArr0 = '<strong class="error">'..mess('AvvisoArrotondo0', {Digit, arrotondo}) ..'</strong> '..cfg.messages['LinkAiuto']
end
if SubPage ~= 'Copertina' or SubPage ~= 'Bollettino' then -- Controlla se ci troviamo in una pagina di copertina o bollettino
-- #### FUNZIONE CENTRALE
-- #############################################################################
if Digit == arg then -- Controlla se è stato inserito il segno di percentuale (%)
return AvvisoErr..''..categorizza(cfg.cat['CatError']) -- Mostra un avviso e categorizza
else
-- GESTIONE PERCENTUALI
-- #########################################
if arrotondo == '0%' or arrotondo == '00%' then -- Percentuale 0%
if Digit == '0' or Digit == '00' then -- controlla che il valore messo sia esattamente "0" o "00"
return AvvisoStb
else
-- se non è stato inserito esattamente il valore corretto per "0", categorizza come "00%",
-- visualizza il messaggio di stub e avvisa dell'arrotondamento
return AvvisoArr0..'<br>'..AvvisoStb
end
elseif Digit == '25' or Digit == '50' or Digit == '75' or Digit == '100' then -- perc. > 0 inserite correttamente
return categorizza(CatTipo..' '..Digit..'%')..''..tostring(textquality)
else -- percentuale errata
return AvvisoArr..''..categorizza(CatTipo..' '..arrotondo)..''..categorizza(cfg.cat['CatArrotondo'])..''..tostring(textquality)
end -- CHIUSURA di: Gestione percentuali
end -- CHIUSURA di: funzione centrale
end -- CHIUSURA di: Controlla se ci troviamo in una pagina di copertina o bollettino
end
return p