Modulo:Controllo di autorità: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
test per codice SBN, controllo su stringhe, larghezza box |
cambio in "Schede di autorità" come da discussione |
||
Riga 60: | Riga 60: | ||
['font-weight'] = 'bold' |
['font-weight'] = 'bold' |
||
} |
} |
||
:wikitext(' |
:wikitext('Schede di autorità') |
||
:done() |
:done() |
||
:tag('td') |
:tag('td') |
Versione delle 18:30, 24 feb 2014
La documentazione per questo modulo può essere creata in Modulo:Controllo di autorità/man
-- principali codici di controllo di autorità
-- [[d:MediaWiki:Gadget-AuthorityControl.js]] per una lista completa
local codici = {
{ 214, '[[w:Virtual International Authority File|VIAF]]', '//viaf.org/viaf/$1/' },
{ 227, '[[wikipedia:Integrated Authority File|GND]]', 'http://d-nb.info/gnd/$1' },
{ 244, '[[w:Library of Congress Control Number|LCCN]]', 'http://lccn.loc.gov/$1' },
{ 268, '[[w:Bibliothèque nationale de France|BNF]]', 'http://catalogue.bnf.fr/ark:/12148/cb$1/PUBLIC' },
{ 396, '[[w:Servizio bibliotecario nazionale|SBN]]', 'http://id.sbn.it/af/$1' }
}
function val(item,prop)
local claims = item.claims
local res = {}
if claims~=nil and claims['P'..prop[1]]~=nil then
for index,claim in pairs(claims['P'..prop[1]]) do
local dv = claim.mainsnak.datavalue
if dv~=nil and dv.value~=nil and type(dv.value)=='string' and mw.text.trim(dv.value)~='' then
table.insert(res,'['..mw.ustring.format(prop[3],dv.value)..' '..dv.value..']')
end
end
end
if #res > 0 then
return prop[2]..': '..table.concat(res,', ')
else
return nil
end
end
local p = {}
-- per l'uso da parte di altri moduli
function p.box(item)
if mw.wikibase and not item then
item = mw.wikibase.getEntity()
end
if not item then
return ''
end
local res = {}
for i,v in pairs(codici) do
local x = val(item,v)
if x then
table.insert(res,'*'..x)
end
end
if #res > 0 then
return tostring(
mw.html.create('table')
:addClass('toccolours')
--:css('width','100%')
:attr('cellpadding','4')
:tag('tr')
:css('vertical-align','top')
:tag('td')
:css{
background = '#ccf',
['text-align'] = 'right',
['padding-right'] = '0.4em',
width = '15%',
['font-weight'] = 'bold'
}
:wikitext('Schede di autorità')
:done()
:tag('td')
:tag('div')
:addClass('hlist')
:wikitext('\n'..table.concat(res,'\n'))
:allDone()
)
else
return ''
end
end
function p.test()
return p.box({
claims = {
P214 = {
{
mainsnak = {
datavalue = {
value = '18273645'
}
}
}
},
P227 = {
{
mainsnak = {
datavalue = {
value = 'a123456'
}
}
}
},
P244 = {
{
mainsnak = {
datavalue = {
value = '1234567'
}
}
},
{
mainsnak = {
datavalue = {
value = '7654321'
}
}
}
},
P396 = {
{
mainsnak = {
datavalue = {
value = 'ABCDEF'
}
}
}
}
}
})
end
-- da invocare nel wikicodice
function p.ext(frame)
return p.box()
end
return p