Modulo:Interprogetto: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Moroboshi (discussione | contributi)
Nessun oggetto della modifica
Moroboshi (discussione | contributi)
Nessun oggetto della modifica
Riga 4:
 
local HtmlBuilder = require('Module:HtmlBuilder') -- richiesto per la costruzione del markup html
local progetti={} -- dati da usare per la costruzione delle righe dell'elenco di link ai progetti
 
local progetti={} -- variabile che contiene gli argomenti passati al template
local etichetta -- etichetta da usare per i collegamenti
local root -- radice del markup html
local log= '' -- per debug
 
-- Valori di default dei parametri
-- priorità, un numero intero (più basso è prima compare il link al progetto)
-- prefisso_progetto, prefisso del progetto
-- nome_progetto, nome visualizzato del progetto
-- nome_leftbar, nome da usare per il collegamento nella barra di sinistra (falso o quello da premettere al nome progetto)
-- lingua del progetto, un valore booleano falso o il codice della lingua da collegare (per progetti multilingua come commons)
-- logo del progetto
-- dimensionilogo del logoprogetto
-- dimensioni del logo
-- etichetta standard per il contenuto ('opere originali', 'testi o manuali', ecc..)
-- testo_iniziale, eventuale testo standardprima chedel identificalink ilal contenutoprogetto ('opereper originali', 'ricette', ecc..)
-- etichetta standard per il contenuto ('opere originali', 'testi o manuali', ecc..)
-- testo standard che identifica il contenuto ('opere originali', 'ricette', ecc..)
-- virgolette di apertura intorno all'etichetta
-- virgolette di chiusura intorno all'etichetta
 
local default_parameter ={
wikisource = {1, 's:', 'Wikisource', false, false, 'Wikisource-logo.svg', '18px', '', 'opere originali ', 'di o su', '', ''},
testo = {2, 's:', 'Testo completoWikisource', false, false, 'Wikisource-logo.svg', '18px', '', 'opere originali ', 'di o su', '', ''}, -- da verificare parametri
wikiquote = {3, 'q:', 'Wikiquote', false, false, 'Wikiquote-logo.svg', '18px', '', 'citazioni', 'di o su', '', '' },
wikibooks = {4, 'wikibooks:', 'Wikibooks', false, false, 'Wikibooks-logo.svg', '22px', '', 'testi o manuali', 'su', '', '' },
ricetta = {5, 'b:Libro di cucina/Ricette/', 'Ricetta<br />(Wikibooks)', 'Ricette', false, "Il ''[[b:Libro di cucina|Libro di cucina]]'' di ", 'Wikibooks-logo.svg', '22px', 'ricette', 'relative a questo argomento', '', '' }, --TODO rivedere
wiktionary = {6, 'wiktionary:', 'Wikizionario', false, false, 'Wiktionary small.svg', '18px', '', 'il lemma di dizionario', false, '«', '»'}, --TODO chiusura
v = {7, 'v:', 'Wikiversità', false, false, 'Wikiversity-logo-It.svg', '18px', '', 'informazioni', 'su', '', ''},
wikinews = {8, 'wikinews:', 'Wikinotizie', false, false, 'Wikinews-logo.svg', '25px', '', 'notizie di attualità', 'su', '', ''},
commons = {9, 'commons:', 'Commons', false, 'it', 'Commons-logo.svg', '18px', '', 'immagini o altri file', 'su', '', ''},
meta = {11, 'meta:', 'Meta-Wiki', false, 'it', 'Wikimedia Community Logo.svg', '18px', '', 'informazioni', 'su', '', ''},
wikispecies = {12, 'wikispecies:', 'Wikispecies', false, 'it', 'WikiSpecies notext.svg', '21px', '', 'informazioni', 'su', '', ''},
-- incubator = {13, 'incubator:', 'Incubator', 'it'},
voy = {14, 'voy:', 'Wikivoyage', false, 'Wikivoyage-logo.svg', '18px', '', 'informazioni turistiche', 'su', '', ''}
}
 
Riga 70:
 
local function add_space(s)
-- ritorna uno spazio se l'ultimo carattere non è un accento o un "«"
if mw.ustring.sub(s, -1) == "'" or mw.ustring.sub(s, -1)=='«' then
return ''
else
return ' '
end
Riga 80:
local function RenderLeftBar()
-- Crea la barra di sinistra con i link interprogetto
-- TODO if args.notizia then return end
-- costruisce le righe per la barra di sinistra
local leftbar = HtmlBuilder.create()
for k, progetto in pairs(progetti) do
priority, prefix, nome_progetto, nome_leftbar, lang, etichetta = unpack(progetto)
if lang then
leftbar.wikitext(table.concat({'* [', tostring(mw.uri.fullUrl(prefix .. etichetta, {uselang=lang})),
' ', nome_leftbar or nome_progetto, ']'}))
else
leftbar.wikitext(table.concat({'* [[', prefix, etichetta, '|', nome_leftbar or nome_progetto, ']]'}))
end
if alias[k]nome_leftbar then
leftbar.wikitext(table.concat({'<br />(', nome_progetto, ')'}))
end
leftbar.newline()
Riga 107 ⟶ 110:
-- produce il codice html per l'elenco puntato
for k, progetto in pairs(progetti) do
priority_, prefix, nome_progetto, _, lang, etichetta, icona, dimensione_icona, testo_iniziale, opere, preposizione,
vapri, vchiudi = unpack(progetto)
root.newline()
if lang then
Riga 137 ⟶ 141:
 
-- Carico i parametri
etichetta = default_value(origArgs.etichetta, mw.title.getCurrentTitle().text)
local etichetta = default_value(origArgs.etichetta, nilmw.title.getCurrentTitle().text)
local preposizione = default_value(origArgs.preposizione, nil)
local oggetto = default_value(origArgs.oggetto, nil)
 
Riga 149 ⟶ 153:
k = trim(v) -- elimino eventuali spazi iniziali e finali
v = etichetta
end
local subpriority = 0
orig_key = k
if alias[k] then
subpriority, k = unpack(alias[k])
end
if default_parameter[k] then
table.insert(progetto, default_parameter[k][1]) + subpriority / 10)--priority
table.insert(progetto, default_parameter[k][2]) -- prefix
table.insert(progetto, default_parameter[k][3]) -- nome progetto
table.insert(progetto, default_parameter[k][4]) -- codicenome lingualeftbar
table.insert(progetto, default_parameter[k][5]) -- logocodice lingua
table.insert(progetto, default_parameterdefault_value(origArgs[k][6]) --.. dimensioni'_etichetta'], logoetichetta))
table.insert(progetto, default_value(origArgs[orig_key .. '_oggetto'], oggetto) or default_parameter[k][76]) -- icona
iftable.insert(progetto, default_parameter[k][87] then) -- sedimensione la preposizione di default ha valore false (piuttosto che essere una stringa non la sostituisco)icona
table.insert(progetto, default_value(origArgs[orig_key .. '_preposizione'], preposizione) or default_parameter[k][8])
table.insert(progetto, default_value(origArgs[k .. '_oggetto'], oggetto) or default_parameter[k][9])
if default_parameter[k][10] then -- se la preposizione di default ha valore false (piuttosto che essere una stringa non la sostituisco)
table.insert(progetto, default_value(origArgs[k .. '_preposizione'], preposizione) or default_parameter[k][10])
else
table.insert(progetto, '')
end
table.insert(progetto, default_value(origArgs[orig_keyk .. 'lingua'] or nil))
table.insert(progetto, default_parameter[k][911]) -- virgolette di apertura intorno all'etichetta
table.insert(progetto, default_parameter[k][1012]) -- virgolette di chiusura intorno all'etichetta
table.insert(progetti, progetto)
end