Bearbeiten von „Modul:PropertyLink

Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden. Ein eigenes Benutzerkonto hat eine ganze Reihe von Vorteilen.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 1: Zeile 1:
function getLinkLabel(propValue, frame)
function getProperty( propertyName )
if propValue['type'] == 'wikibase-entityid' then
local isWikipedia = false
        local linkTarget = mw.wikibase.sitelink( "Q" .. propValue.value['numeric-id'] )
        if not linkTarget then
        local targetEntity = mw.wikibase.getEntity( "Q" .. propValue.value['numeric-id'] )
        if targetEntity and targetEntity['sitelinks'] then
        if targetEntity['sitelinks']['dewiki'] then
        linkTarget = string.gsub('de:' .. targetEntity['sitelinks']['dewiki']['title'], ' ', '_')
        isWikipedia = true
        elseif targetEntity['sitelinks']['enwiki'] then
        linkTarget = string.gsub(targetEntity['sitelinks']['enwiki']['title'], ' ', '_')
        isWikipedia = true
    end
end
end
        local linkTitle = mw.wikibase.label( "Q" ..propValue.value['numeric-id'] )
       
        if isWikipedia then
        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
 
function getProperty(propertyName, frame)
     local entity = mw.wikibase.getEntityObject()
     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
Zeile 41: Zeile 7:
     local propValue = property.mainsnak and property.mainsnak.datavalue
     local propValue = property.mainsnak and property.mainsnak.datavalue
     if not propValue then return end --property doesnt exist
     if not propValue then return end --property doesnt exist
 
    if propValue['type'] == 'wikibase-entityid' then
local label = getLinkLabel(propValue, frame)
        local linkTarget = mw.wikibase.sitelink( "Q" .. propValue.value['numeric-id'] )
        local linkTitle = mw.wikibase.label( "Q" ..propValue.value['numeric-id'] )
if not label == propValue then
        return linkTarget and linkTitle and mw.ustring.format( "[[%s|%s]]", linkTarget, linkTitle )
return label
            or linkTitle
end
    elseif propValue and propValue['type'] == 'string' then return propValue.value 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
end
 
function property( frame )
function property( frame )
     return getProperty(string.upper(frame.args[1], frame), frame)
     return getProperty(string.upper(frame.args[1]))
end
end
 
function getLabel( propertyName )
function getLabel( propertyName )
     local entity = mw.wikibase.getEntity()
     local entity = mw.wikibase.getEntity()
Zeile 74: Zeile 35:
     end
     end
end
end
function getLinkLabels( frame )
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
    local properties = entity.claims[propertyName]
    if not properties then return end--no such property for this item
   
   
    local retVal = ''
    for propIndex in pairs(properties) do
    local property = properties[propIndex]
local propValue = property.mainsnak.datavalue
if not propValue then return '' end --property doesnt exist
local value = getLinkLabel(propValue, frame)
if retVal == '' then
retVal = value
else
retVal = retVal .. ', ' .. value
end
end
return retVal
end
-- 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
 
function getImageLink( propName, width)
function getImageLink( propName, width)
     local entity = mw.wikibase.getEntity()
     local entity = mw.wikibase.getEntity()
     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 property = entity.claims[propName or "P4"]
     local property = entity.claims[propName or "P3"]
     if property then
     if property then
         local width = width or "220"
         local width = width or "220"
         return mw.ustring.format( '[[File:%s|%spx]]', property[1].mainsnak.datavalue.value, width )
         return mw.ustring.format( '[[File:%s|%spx]]', property[0].mainsnak.datavalue.value, width )
     end
     end
end
end
Zeile 116: Zeile 53:
--use this function to get associated image to be used in the article
--use this function to get associated image to be used in the article
function imageLink( frame )
function imageLink( frame )
     return getImageLink( string.upper(frame.args[1]), frame.args["width"])
     return getImageLink( string.lower(frame.args[1]), frame.args["width"])
end
end
   
   
Zeile 129: Zeile 66:
     getProperty = getProperty,
     getProperty = getProperty,
     getImageLink = getImageLink,
     getImageLink = getImageLink,
     getLabel = getLabel,
     getLabel = getLabel
    getLinkLabels = getLinkLabels,
}
}
Bitte kopiere keine Webseiten, die nicht deine eigenen sind, benutze keine urheberrechtlich geschützten Werke ohne Erlaubnis des Urhebers!
Du gibst uns hiermit deine Zusage, dass du den Text selbst verfasst hast, dass der Text Allgemeingut (public domain) ist, oder dass der Urheber seine Zustimmung gegeben hat. Falls dieser Text bereits woanders veröffentlicht wurde, weise bitte auf der Diskussionsseite darauf hin. Bitte beachte, dass alle Android Wiki-Beiträge automatisch unter der „Creative Commons Attribution/Share-Alike Lizenz 3.0“ stehen. Falls du nicht möchtest, dass deine Arbeit hier von anderen verändert und verbreitet wird, dann klicke nicht auf „Seite speichern“.

Um das Wiki vor automatisiertem Bearbeitungsspam zu schützen, bitten wir dich, das folgende CAPTCHA zu lösen:

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)
Vorschau der Seite mit dieser Vorlage anzeigen

Die folgende Vorlage wird auf dieser Seite verwendet: