Módulo:Control de autoridades: Diferenzas entre revisións

Contido eliminado Contido engadido
Banjo (conversa | contribucións)
Sen resumo de edición
Banjo (conversa | contribucións)
Desfíxose a edición 4925338 de Banjo (conversa)
Etiqueta: Desfacer
Liña 16:
end
 
local function getLink( property, val, mask )
local link, returnVal = '', {}""
returnVal.isError = false
if mw.ustring.find( val, '//' ) then
link = val
else
if type(property) == 'number' and property > 0 then
local entityObject = mw.wikibase.getEntitygetEntityObject('P'..property)
local dataType = entityObject.datatype
if dataType == '"external-id'" then
if local entityObject then dataTypeformatterURL = entityObject.datatype:getBestStatements('P1630')[1]
if formatterURL then
else returnVal.isError = true end
link = formatterURL.mainsnak.datavalue.value
endelse
if dataType == 'external-id' then
local formatterURL = nilentityObject:getBestStatements('P3303')[1]
if property == 3746formatterURL then --Wildflowerslink of Israel ID's 2nd= formatterURL.mainsnak.datavalue.value is in Englishend
formatterURL = entityObject:getBestStatements('P1630')[2]
end
if formatterURL == nil then formatterURL = entityObject:getBestStatements('P1630')[1] end
if formatterURL then
if formatterURL.mainsnak.datavalue and formatterURL.mainsnak.datavalue.value then --nil check for ABA
link = formatterURL.mainsnak.datavalue.value
end
end
elseif dataType == '"url'" then
local subjectItem = entityObject:getBestStatements('P1629')[1]
if subjectItem then
local officialWebsite = mw.wikibase.getEntitygetEntityObject(subjectItem.mainsnak.datavalue.value.id):getBestStatements('P856')[1]
if officialWebsite then link = officialWebsite.mainsnak.datavalue.value end
end
elseif dataType == '"string'" then
local formatterURL = entityObject:getBestStatements('P1630')[1]
if formatterURL then
link = formatterURL.mainsnak.datavalue.value
else
local formatterURL = entityObject:getBestStatements('P1630P3303')[21]
if formatterURL.mainsnak.datavalue andthen link = formatterURL.mainsnak.datavalue.value then --nil check for ABA
else
local subjectItem = entityObject:getBestStatements('P1629')[1]
if subjectItem then
local officialWebsite = mw.wikibase.getEntitygetEntityObject(subjectItem.mainsnak.datavalue.value.id):getBestStatements('P856')[1]
if officialWebsite then link = officialWebsite.mainsnak.datavalue.value end
end
end
elseend
returnVal.isError = true
end
elseif type(property) == 'string' then
link = property
end
link = mw.ustring.gsub(link, '$1', valurlval)
local valurl = val
if mw.ustring.find( link, 'antweb.org' ) then valurl = mw.ustring.gsub(valurl, ' ', '%%20') end
if type(property) == 'number' then
--doublecheck language for Wildflowers of Israel ID
if property == 3746 then link = mw.ustring.gsub(link, '/hebrew/', '/english/') end
--format spaces in PfaF, e.g. for "Elaeagnus x ebbingei"
if property == 4301 then valurl = mw.ustring.gsub(valurl, ' ', '+') end
end
valurl = mw.ustring.gsub(valurl,'%%','%%%%')
link = mw.ustring.gsub(link, '$1', valurl)
end
link = mw.ustring.gsub(link, '^[Hh][Tt][Tt][Pp]([Ss]?)://', 'http%1://') -- fix wikidata URL
valurl link = mw.ustring.gsub(valurllink, '%% ' , '%%%%')
val = mw.ustring.match(val, '([^=/]*)/?$') -- get display name from end of URL
if mw.ustring.find( link, '//' ) then
if type(property)mask == 'numbery' then
returnVal.text = '['..link..' '..mw.text.encode(mw.uri.decode(val, 'PATH'),'%[%]')..']'
return '<span class="plainlinks">['..link..' ID]</span>'
elseif link == '' then
else
returnVal.text = val
return '<span class="plainlinks">['..link..' '..val..']</span>'
end
elseif link == ''"" then
return val
else
returnVal.text =return '<span class="plainlinks">[['..link..'|'..val..']]</span>'
end
return returnVal
end