--[[
* Modulo impiegato dal Template:New Grove per creare una citazione alle
* enciclopedie Grove (vedi voce Grove Dictionary of Music and Musicians).
* Il modulo è un wrapper che richiama il Modulo:Citazione dopo avere filtrato
* i parametri, aggiungendo i valori predefiniti (titolo, ISBN, curatori etc.)
* e rimappando i parametri posizionali, che nel Template:New Grove hanno un
* diverso ordine dai template Cita (giustificato da una sua logica).
--]]
local p = {}
-- parametri posizionali: {{New Grove|edizione|nome|cognome|voce|volume|pagine|cid|wl}}
-- edizioni: 1, 2, inst, opera, american, art1, art2, jazz1, jazz2
function p.citation(frame)
local pargs = frame:getParent().args
-- wl determina se inserire o meno un wikilink nel titolo dell'opera
local wl = pargs[8] or pargs['wl'] or Nil
wl = wl and wl ~= ''
-- sceglie edizione (per avere i campi precompilati)
local edition = pargs[1] or pargs['edizione'] or Nil
-- conversione parametri posizionali:
-- il Modulo:Citazione e il Template:New Grove hanno un ordine diverso
-- per i parametri posizionali
pargs['nome'] = pargs[2] or pargs['nome']
pargs['cognome'] = pargs[3] or pargs['cognome']
pargs['voce'] = pargs[4] or pargs['voce']
pargs['volume'] = pargs[5] or pargs['volume']
pargs['pagine'] = pargs[6] or pargs['pagine']
pargs['cid'] = pargs[7] or pargs['cid']
-- New Grove ed. 1
if edition == "1" then
if wl then
pargs['titolo'] = "The New Grove Dictionary of Music and Musicians"
else
pargs['titolo'] = "[[Grove Dictionary of Music and Musicians|The New Grove Dictionary of Music and Musicians]]"
end
pargs['curatore'] = "Stanley Sadie"
pargs['edizione'] = "1ª ed."
pargs['editore'] = "MacMillian"
pargs['città'] = "Londra"
pargs['anno'] = "1980"
pargs['ISBN'] = "978-0333231111"
-- New Grove ed. 2
elseif edition == "2" then
if wl then
pargs['titolo'] = "The New Grove Dictionary of Music and Musicians"
else
pargs['titolo'] = "[[Grove Dictionary of Music and Musicians|The New Grove Dictionary of Music and Musicians]]"
end
pargs['curatore'] = "Stanley Sadie"
pargs['curatore2'] = "John Tyrrell"
pargs['edizione'] = "2ª ed."
pargs['editore'] = "Oxford University Press"
pargs['anno'] = "2001"
pargs['ISBN'] = "978-0195170672"
-- Grove Dictionary of Musical Instruments
elseif edition == "inst" then
pargs['titolo'] = "The New Grove Dictionary of Musical Instruments"
pargs['curatore'] = "Stanley Sadie"
pargs['editore'] = "MacMillian"
pargs['città'] = "Londra"
pargs['anno'] = "1984"
pargs['ISBN'] = "0943818052"
-- Grove Dictionary of Opera
elseif edition == "opera" then
if wl then
pargs['titolo'] = "[[New Grove Dictionary of Opera|The New Grove Dictionary of Opera]]"
else
pargs['titolo'] = "The New Grove Dictionary of Opera"
end
pargs['curatore'] = "Stanley Sadie"
pargs['edizione'] = "1ª ed."
pargs['editore'] = "MacMillian"
pargs['città'] = "Londra"
pargs['anno'] = "1992"
pargs['ISBN'] = "0333485521"
-- Grove Dictionary of American Music
elseif edition == "american" then
pargs['titolo'] = "The New Grove Dictionary of American Music"
pargs['curatore'] = "Stanley Sadie"
pargs['curatore'] = "Hugh Wiley Hitchcock"
pargs['editore'] = "MacMillian"
pargs['città'] = "Londra"
pargs['anno'] = "1986"
pargs['ISBN'] = "0333378792"
-- Grove Dictionary of Art ed. 1
elseif edition == "art1" then
pargs['titolo'] = "The Grove Dictionary of Art"
pargs['curatore'] = "Jane Turner"
pargs['edizione'] = "1ª ed."
pargs['editore'] = "Oxford University Press"
pargs['anno'] = "1996"
pargs['ISBN'] = "1884446000"
-- Grove Dictionary of Art ed. 2
elseif edition == "art2" then
pargs['titolo'] = "The Grove Dictionary of Art"
pargs['curatore'] = "Jane Turner"
pargs['edizione'] = "2ª ed."
pargs['editore'] = "Oxford University Press"
pargs['anno'] = "2003"
pargs['ISBN'] = "0195170687"
-- Grove Dictionary of Jazz ed. 1
elseif edition == "jazz1" then
pargs['titolo'] = "The New Grove Dictionary of Jazz"
pargs['curatore'] = "Barry Kernfeld"
pargs['edizione'] = "1ª ed."
pargs['editore'] = "MacMillian"
pargs['anno'] = "1988"
pargs['ISBN'] = "0312113579"
-- Grove Dictionary of Jazz ed. 2
elseif edition == "jazz2" then
pargs['titolo'] = "The New Grove Dictionary of Jazz"
pargs['curatore'] = "Barry Kernfeld"
pargs['edizione'] = "2ª ed."
pargs['editore'] = "Oxford University Press"
pargs['anno'] = "2003"
pargs['ISBN'] = "1561592846"
-- parametro edizione assente o invalido
else
return mw.getCurrentFrame():expandTemplate {
title = "Errore template",
args = {
"edizione",
"Citazione Grove",
t = not edition or "r",
cat = "Errori di compilazione del template New Grove"
}
}
end
-- oggetto ambiente per la chiamata del Modulo:Citazione
local cite_object = {
cite_module = require("Modulo:Citazione"),
args = pargs,
frame = {
args = {}
}
}
function cite_object.getParent()
return cite_object.frame
end
-- chiama la funzione citation dal Modulo:Citazione
return cite_object.cite_module.citation(cite_object)
end
return p