Moderator, Bürokraten, Checkuser-Berechtigte, developer, emailconfirmed, Oberflächenadministratoren, Oversighter, Administratoren
11.008
Bearbeitungen
Keine Bearbeitungszusammenfassung |
(link to URL if qualifier has one) |
||
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
function | function getLinkLabel(propValue, frame) | ||
if propValue['type'] == 'wikibase-entityid' then | |||
local isWikipedia = false | |||
local linkTarget = mw.wikibase.sitelink( "Q" .. propValue.value['numeric-id'] ) | local linkTarget = mw.wikibase.sitelink( "Q" .. propValue.value['numeric-id'] ) | ||
if not linkTarget then | if not linkTarget then | ||
Zeile 13: | Zeile 7: | ||
if targetEntity and targetEntity['sitelinks'] then | if targetEntity and targetEntity['sitelinks'] then | ||
if targetEntity['sitelinks']['dewiki'] then | if targetEntity['sitelinks']['dewiki'] then | ||
linkTarget = ' | linkTarget = string.gsub('de:' .. targetEntity['sitelinks']['dewiki']['title'], ' ', '_') | ||
isWikipedia = true | |||
elseif targetEntity['sitelinks']['enwiki'] then | elseif targetEntity['sitelinks']['enwiki'] then | ||
linkTarget = | linkTarget = string.gsub(targetEntity['sitelinks']['enwiki']['title'], ' ', '_') | ||
isWikipedia = true | |||
end | end | ||
end | end | ||
end | |||
local linkTitle = mw.wikibase.label( "Q" ..propValue.value['numeric-id'] ) | local linkTitle = mw.wikibase.label( "Q" ..propValue.value['numeric-id'] ) | ||
return linkTarget | |||
if isWikipedia then | |||
elseif propValue and propValue['type'] == 'string' then return propValue.value end | template = "{{WikipediaLink|%s|%s}}" | ||
end | |||
if linkTarget and linkTitle then | |||
if isWikipedia then | |||
return frame:expandTemplate{ title = 'WikipediaLink', args = { linkTarget, linkTitle } } | |||
end | |||
return mw.ustring.format( "[[%s|%s]]", linkTarget, linkTitle ) | |||
else | |||
return linkTitle | |||
end | |||
elseif propValue and propValue['type'] == 'string' then | |||
return propValue.value | |||
end | |||
end | end | ||
function getProperty(propertyName, frame) | |||
local entity = mw.wikibase.getEntityObject() | |||
if not entity or not entity.claims then return end--the entity doesnt exist or have no claims | |||
local property = entity.claims[propertyName] | |||
if not property then return end--no such property for this item | |||
property = property[1] | |||
local propValue = property.mainsnak and property.mainsnak.datavalue | |||
if not propValue then return end --property doesnt exist | |||
local label = getLinkLabel(propValue, frame) | |||
if not label == propValue then | |||
return label | |||
end | |||
if property.qualifiers and property.qualifiers["P27"] then | |||
return mw.ustring.format( "[%s %s]", property.qualifiers["P27"][1].datavalue.value, label ) | |||
end | |||
return label | |||
end | |||
function property( frame ) | function property( frame ) | ||
return getProperty(string.upper(frame.args[1])) | return getProperty(string.upper(frame.args[1], frame), frame) | ||
end | end | ||
Zeile 46: | Zeile 75: | ||
end | end | ||
function | function getLinkLabels( frame ) | ||
local entity = mw.wikibase. | propertyName = frame.args[1] | ||
local entity = mw.wikibase.getEntityObject() | |||
if not entity or not entity.claims then return end--the entity doesnt exist or have no claims | if not entity or not entity.claims then return end--the entity doesnt exist or have no claims | ||
local properties = entity.claims[propertyName] | local properties = entity.claims[propertyName] | ||
if not properties then return | if not properties then return end--no such property for this item | ||
local retVal = ' | local retVal = '' | ||
for | for propIndex in pairs(properties) do | ||
local property = properties[propIndex] | |||
local propValue = property.mainsnak.datavalue | local propValue = property.mainsnak.datavalue | ||
if not propValue then return '' end --property doesnt exist | if not propValue then return '' end --property doesnt exist | ||
local | local value = getLinkLabel(propValue, frame) | ||
if retVal == '' then | if retVal == '' then | ||
retVal = value | retVal = value | ||
else | else | ||
retVal = retVal | retVal = retVal .. ', ' .. value | ||
end | end | ||
end | end | ||
Zeile 76: | Zeile 101: | ||
-- Return the label for property, or the label of the linked entiy of that property | -- Return the label for property, or the label of the linked entiy of that property | ||
function label( frame ) | function label( frame ) | ||
return getLabel( string.lower(frame.args[1] )) | return getLabel(string.lower(frame.args[1])) | ||
end | end | ||
Zeile 105: | Zeile 130: | ||
getImageLink = getImageLink, | getImageLink = getImageLink, | ||
getLabel = getLabel, | getLabel = getLabel, | ||
getLinkLabels = getLinkLabels, | |||
} | } |
Bearbeitungen