local p = {}
-- shallow copy di un oggetto table
local function table_shallow_copy(obj)
local copy = {}
if type(obj) == 'table' then
for key, val in pairs(obj) do
copy[key] = val
end
end
return copy
end
-- parametri posizionali: {{New Grove|edizione|nome|cognome|voce|volume|pagine|cid|wl}}
-- wl determina se inserire o meno un wikilink nel titolo dell'opera
local wl = pargs[8'wl'] or pargs['wl'8] or Nil
wl = wl and wl ~= ''
-- sceglie edizione (per avere i campi precompilati)
local edition = pargs[1'edizione'] or pargs['edizione'1] or Nil
-- shallow copy dei parametri
local inner_args = table_shallow_copy(pargs)
-- conversione parametri posizionali:
-- il Modulo:Citazione e il Template:New Grove hanno un ordine diverso
-- per i parametri posizionali
pargsinner_args['nome'] = pargs[2'nome'] or pargs['nome'2]
pargsinner_args['cognome'] = pargs[3'cognome'] or pargs['cognome'3]
pargsinner_args['voce'] = pargs[4'voce'] or pargs['voce'4]
pargsinner_args['volume'] = pargs[5'volume'] or pargs['volume'5]
pargsinner_args['pagine'] = pargs[6'pagine'] or pargs['pagine'6]
pargsinner_args['cid'] = pargs[7'cid'] or pargs['cid'7]
-- New Grove ed. 1
if edition == "1" then
if wl then
pargsinner_args['titolo'] = "The New Grove Dictionary of Music and Musicians"
else
pargsinner_args['titolo'] = "[[Grove Dictionary of Music and Musicians|The New Grove Dictionary of Music and Musicians]]"
end
pargsinner_args['curatore'] = "Stanley Sadie"
pargsinner_args['edizione'] = "1ª ed."
pargsinner_args['editore'] = "MacMillian"
pargsinner_args['città'] = "Londra"
pargsinner_args['anno'] = "1980"
pargsinner_args['ISBN'] = "978-0333231111"
-- New Grove ed. 2
elseif edition == "2" then
if wl then
pargsinner_args['titolo'] = "The New Grove Dictionary of Music and Musicians"
else
pargsinner_args['titolo'] = "[[Grove Dictionary of Music and Musicians|The New Grove Dictionary of Music and Musicians]]"
end
pargsinner_args['curatore'] = "Stanley Sadie"
pargsinner_args['curatore2'] = "John Tyrrell"
pargsinner_args['edizione'] = "2ª ed."
pargsinner_args['editore'] = "Oxford University Press"
pargsinner_args['anno'] = "2001"
pargsinner_args['ISBN'] = "978-0195170672"
-- Grove Dictionary of Musical Instruments
elseif edition == "inst" then
pargsinner_args['titolo'] = "The New Grove Dictionary of Musical Instruments"
pargsinner_args['curatore'] = "Stanley Sadie"
pargsinner_args['editore'] = "MacMillian"
pargsinner_args['città'] = "Londra"
pargsinner_args['anno'] = "1984"
pargsinner_args['ISBN'] = "0943818052"
-- Grove Dictionary of Opera
elseif edition == "opera" then
if wl then
pargsinner_args['titolo'] = "[[New Grove Dictionary of Opera|The New Grove Dictionary of Opera]]"
else
pargsinner_args['titolo'] = "The New Grove Dictionary of Opera"
end
pargsinner_args['curatore'] = "Stanley Sadie"
pargsinner_args['edizione'] = "1ª ed."
pargsinner_args['editore'] = "MacMillian"
pargsinner_args['città'] = "Londra"
pargsinner_args['anno'] = "1992"
pargsinner_args['ISBN'] = "0333485521"
-- Grove Dictionary of American Music
elseif edition == "american" then
pargsinner_args['titolo'] = "The New Grove Dictionary of American Music"
pargsinner_args['curatore'] = "Stanley Sadie"
pargsinner_args['curatorecuratore2'] = "Hugh Wiley Hitchcock"
pargsinner_args['editore'] = "MacMillian"
pargsinner_args['città'] = "Londra"
pargsinner_args['anno'] = "1986"
pargsinner_args['ISBN'] = "0333378792"
-- Grove Dictionary of Art ed. 1
elseif edition == "art1" then
pargsinner_args['titolo'] = "The Grove Dictionary of Art"
pargsinner_args['curatore'] = "Jane Turner"
pargsinner_args['edizione'] = "1ª ed."
pargsinner_args['editore'] = "Oxford University Press"
pargsinner_args['anno'] = "1996"
pargsinner_args['ISBN'] = "1884446000"
-- Grove Dictionary of Art ed. 2
elseif edition == "art2" then
pargsinner_args['titolo'] = "The Grove Dictionary of Art"
pargsinner_args['curatore'] = "Jane Turner"
pargsinner_args['edizione'] = "2ª ed."
pargsinner_args['editore'] = "Oxford University Press"
pargsinner_args['anno'] = "2003"
pargsinner_args['ISBN'] = "0195170687"
-- Grove Dictionary of Jazz ed. 1
elseif edition == "jazz1" then
pargsinner_args['titolo'] = "The New Grove Dictionary of Jazz"
pargsinner_args['curatore'] = "Barry Kernfeld"
pargsinner_args['edizione'] = "1ª ed."
pargsinner_args['editore'] = "MacMillian"
pargsinner_args['anno'] = "1988"
pargsinner_args['ISBN'] = "0312113579"
-- Grove Dictionary of Jazz ed. 2
elseif edition == "jazz2" then
pargsinner_args['titolo'] = "The New Grove Dictionary of Jazz"
pargsinner_args['curatore'] = "Barry Kernfeld"
pargsinner_args['edizione'] = "2ª ed."
pargsinner_args['editore'] = "Oxford University Press"
pargsinner_args['anno'] = "2003"
pargsinner_args['ISBN'] = "1561592846"
-- Oxford Music Online
elseif edition == "online" then
if wl then
inner_args['titolo'] = "[[Oxford Music Online]]"
else
inner_args['titolo'] = "Oxford Music Online"
end
inner_args['curatore'] = "Laura Macy"
inner_args['editore'] = "Oxford University Press"
-- parametro edizione assente o invalido
local cite_object = {
cite_module = require("Modulo:Citazione"),
args = pargsinner_args,
frame = {
args = {}
|