לדלג לתוכן

יחידה:PropertyLink: הבדלים בין גרסאות בדף

מתוך צפונות ויקי
מאין תקציר עריכה
מאין תקציר עריכה
שורה 1: שורה 1:
function getProperty( propertyName )
    local entity = mw.wikibase.getEntity()
    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[0]
    local propValue = property.mainsnak and property.mainsnak.datavalue
    if not propValue then return end --property doesnt exist
    if propValue['type'] == 'wikibase-entityid' then
        local linkTarget = mw.wikibase.sitelink( "Q" .. propValue.value['numeric-id'] )
        local linkTitle = mw.wikibase.label( "Q" ..propValue.value['numeric-id'] )
        return linkTarget and linkTitle and mw.ustring.format( "[[%s|%s]]", linkTarget, linkTitle )
            or linkTitle
    elseif propValue and propValue['type'] == 'string' then return propValue.value end
end
function property( frame )
function property( frame )
        local entity = mw.wikibase.getEntity()
    return getProperty(frame.args[1])
        if not entity or not entity.claims then return end--the entity doesnt exist or have no claims
        local propertyName = type( frame ) == string and frame or frame.args[1]
        local property = entity.claims[propertyName]
        if not property then return end--no such property for this item
        property = property[0]
        local propValue = property.mainsnak and property.mainsnak.datavalue
        if not propValue then return end --property doesnt exist
        if propValue['type'] == 'wikibase-entityid' then
            local linkTarget = mw.wikibase.sitelink( "Q" .. propValue.value['numeric-id'] )
            local linkTitle = mw.wikibase.label( "Q" ..propValue.value['numeric-id'] )
            return linkTarget and linkTitle and mw.ustring.format( "[[%s|%s]]", linkTarget, linkTitle )
                or linkTitle
        elseif propValue and propValue['type'] == 'string' then return propValue.value end
end
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 )
      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 propertyName = type( frame ) == "string" and frame or frame.args[1]
    local propertyName = type( frame ) == "string" and frame or frame.args[1]
        local property = entity.claims[propertyName]
    local property = entity.claims[propertyName]
        if not property then return end--no such property for this item
    if not property then return end--no such property for this item
       
   
        property = property[0]
    property = property[0]
        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


        if propValue['type']=='wikibase-entityid' then
    if propValue['type']=='wikibase-entityid' then
            return mw.wikibase.label( "Q" ..propValue.value['numeric-id'] )
        return mw.wikibase.label( "Q" ..propValue.value['numeric-id'] )
        elseif propValue['type'] == 'string' then
    elseif propValue['type'] == 'string' then
            return propValue.value
        return propValue.value
        end
    end
end
end



גרסה מ־18:05, 6 באפריל 2013

יחידה זו משמשת כדי לקשר בוויקיפדיה לפי ויקינתונים. היחידה מיועדת לשימוש בעיקר בתבניות וכוללת את הפונקציות הבאות:

  • property או מאפיין - לקבלת קישור לפי "קביעה" מוויקינתונים
    • פרמטרים: שם המאפיין (property) המתאים (בצורה של P123). למשל בערך דמויי כלב:
      • {{#invoke:PropertyLink|property|p171}} - יחזיר "[[טורפים (סדרת יונקים)|טורפים]]" (טורפים), להבדיל מ־[[{{#property:p70}}]], שיחזיר "[[טורפים]]" (טורפים), שהוא דף פירושונים.
  • label או תווית: דומה לפונקציה הקודמת, רק שלא מחזיר קישור אלא ללא קישור - מחזיר את התווית (label) וללא תלות בקישור כלשהו שקיים או לא קיים בוויקיפדיה בעברית
    • פרמטרים: שם המאפיין (property) המתאים (בצורה של P123)
  • imageLink או תמונה: פונקציה שמחזירה תמונה שמתאימה לשילוב בתבנית מידע בערך.
    • פרמטרים:
      • פרמטר ראשון - (אופציונלי) אם לא מקבל פרמטר בכלל משתמש ב־d:Property:p18 (מאפיין כללי של תמונה), אחרת משתמש בפרמטר המאפיין המכיל את התמונה
      • width - גודל התמונה (אחרת 220px)
  • hasEntry או יש פריט: פונקציה שמחזירה "1" אם לערך יש פריט ויקינתונים; או "" אם אין.
    • פרמטרים: אין

הערות נוספות:

ייתכן שבעתיד תהיה תמיכה מובנית לפחות בחלק מהאפשרויות הנ"ל ראו בmeta:Wikidata/Notes/Inclusion_syntax#Items

function getProperty( propertyName )
    local entity = mw.wikibase.getEntity()
    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[0]
    local propValue = property.mainsnak and property.mainsnak.datavalue
    if not propValue then return end --property doesnt exist
    if propValue['type'] == 'wikibase-entityid' then
        local linkTarget = mw.wikibase.sitelink( "Q" .. propValue.value['numeric-id'] )
        local linkTitle = mw.wikibase.label( "Q" ..propValue.value['numeric-id'] )
        return linkTarget and linkTitle and mw.ustring.format( "[[%s|%s]]", linkTarget, linkTitle )
            or linkTitle
    elseif propValue and propValue['type'] == 'string' then return propValue.value end
end

function property( frame )
    return getProperty(frame.args[1])  
end

-- Return the label for property, or the label of the linked entiy of that property
function label( frame )
   local entity = mw.wikibase.getEntity()
    if not entity or not entity.claims then return end--the entity doesnt exist or have no claims
    local propertyName = type( frame ) == "string" and frame or frame.args[1]
    local property = entity.claims[propertyName]
    if not property then return end--no such property for this item
    
    property = property[0]
    local propValue = property.mainsnak.datavalue
    if not propValue then return '' end --property doesnt exist

    if propValue['type']=='wikibase-entityid' then
        return mw.wikibase.label( "Q" ..propValue.value['numeric-id'] )
    elseif propValue['type'] == 'string' then
        return propValue.value
    end
end

function getImageLink( propName, width)
    local entity = mw.wikibase.getEntity()
    if not entity or not entity.claims then return end --the entity doesnt exist or have no claims
    local property = entity.claims[propName or "p18"]
    if property then
        local width = width or "220"
        return mw.usitring.format( '[[File:%s|%spx]]', property, width )
    end
end
    
--use this function to get associated image to be used in the article
function imageLink( frame )
    return getImageLink(frame.args[1], frame.args["width"])
end

return {
    imageLink = imageLink,
    ['תמונה'] = imageLink,
    label = label,
    ['תווית'] = label,
    property = property,
    ['תכונה'] = property,    
}