Modulo:CategoriaMusicale: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
mNessun oggetto della modifica
grassetto standard
 
(9 versioni intermedie di un altro utente non mostrate)
Riga 1:
local p = {}
 
local subject2infobox = {
['Gruppi musicali'] = 'Artista musicale',
['Musicisti'] = 'Artista musicale',
['Cantanti'] = 'Artista musicale',
['Disc jockey'] = 'Artista musicale',
['Album'] = 'Album',
['EP'] = 'Album',
['Singoli'] = 'Album',
['Album video'] = 'Album',
['Brani musicali'] = 'Brano musicale'
}
 
local subject2wikilink = {
['Gruppi musicaliAlbum'] = '[[GruppoAlbum musicalediscografico|gruppialbum]] musicali]]',
['MusicistiAlbum video'] = '[[MusicistaAlbum discografico|musicistialbum]] video',
['GruppiBrani musicali'] = 'Artista[[Brano musicale|brani musicali]]',
['Cantanti'] = '[[Cantante|cantanti]]',
['Disc jockey'] = '[[disc jockey]]',
['Album'] = '[[Album discografico|album]] musicali',
['EP'] = '[[Extended play|EP]]',
['SingoliGruppi musicali'] = '[[SingoloGruppo (musica)musicale|singoligruppi musicali]]',
['Album videoMusicisti'] = '[[Album discograficoMusicista|albummusicisti]] video',
['Brani musicaliSingoli'] = '[[BranoSingolo musicale(musica)|brani musicalisingoli]]'
}
 
--[[
function p.categoriamusicale(frame)
-- 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.categoriamusicalemain(frame)
local args = frame.args
local titlegenre = mw.title.getCurrentTitle()args[1]
local subjectforced_link = args[2]
local subject = p.get_subject()
-- verifica quali delle chiavi della tabella subject2wikilink
local text = ""
-- è presente all'inizio del titolo della categoria
subject if =subject kthen
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 string.sub(title,1,string.len(k))=subject ~= k then
text = text .. string.format("\n* [[:Categoria:%s %s|%s %s]]", k, genre, k, genre)
subject = k
end
end
text = text .. "</div>"
local genre = args.genere or args[1]
local forced_link = args.link_genere or args[2] or false
return text
--[[
DO THINGS
]]
 
return p._main(args[1], args[2], args[3], args)
end