Istruzioni per l'uso
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:CategoriaMusicale/man (modifica · cronologia)
Sandbox: Modulo:CategoriaMusicale/sandbox (modifica · cronologia) · Sottopagine: lista · Test: Modulo:CategoriaMusicale/test (modifica · cronologia · Esegui)
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:CategoriaMusicale/man (modifica · cronologia)
Sandbox: Modulo:CategoriaMusicale/sandbox (modifica · cronologia) · Sottopagine: lista · Test: Modulo:CategoriaMusicale/test (modifica · cronologia · Esegui)
Questo modulo rimpiazza il vecchio codice del Template:CategoriaMusicale. Vedi il manuale del template per l'uso.
local p = {}
local subject2wikilink = {
['Album'] = '[[Album discografico|album]] musicali',
['Album video'] = '[[Album discografico|album]] video',
['Brani musicali'] = '[[Brano musicale|brani musicali]]',
['Cantanti'] = '[[Cantante|cantanti]]',
['Disc jockey'] = '[[disc jockey]]',
['EP'] = '[[Extended play|EP]]',
['Gruppi musicali'] = '[[Gruppo musicale|gruppi musicali]]',
['Musicisti'] = '[[Musicista|musicisti]]',
['Singoli'] = '[[Singolo (musica)|singoli]]'
}
--[[
verifica quali delle chiavi della tabella subject2wikilink
è presente all'inizio del titolo della categoria e la memorizza
questa funzione è chiamata sia da p.main che dal template,
tramite il codice {{#invoke:CategoriaMusicale|get_subject}}
]]
function p.get_subject()
local title = mw.title.getCurrentTitle().text
for k, v in pairs(subject2wikilink) do
if title:sub(1,string.len(k))==k then
return k
end
end
return nil
end
--[[
questa è la funzione principale che genera il wikicodice per il template,
da invocare con il codice {{#invoke:CategoriaMusicale|main|genere|link_genere}}
]]
function p.main(frame)
local args = frame.args
local genre = args[1]
local forced_link = args[2]
local subject = p.get_subject()
local text = ""
if subject then
text = "Questa categoria raggruppa voci su '''" .. subject2wikilink[subject] .. " [["
if forced_link ~= "" then text = text .. forced_link .. "|" end
text = text .. genre .. "]]'''.\n\n"
end
text = text .. "Categorie correlate:\n<div class=\"colonne_strette\">"
if subject == "Gruppi musicali" or subject == "Musicisti" or subject == "Cantanti" or subject == "Disc jockey" then
text = text .. string.format("\n* [[:Categoria:%s per nazionalità|%s per nazionalità]]", subject, subject)
end
if subject then
text = text .. string.format("\n* [[:Categoria:%s per genere|%s per genere (tutti)]]", subject, subject)
end
-- aggiungi link alle categorie correlate se diverse da quella attuale
for k, v in pairs(subject2wikilink) do
if subject ~= k then
text = text .. string.format("\n* [[:Categoria:%s %s|%s %s]]", k, genre, k, genre)
end
end
text = text .. "</div>"
return text
end
return p