יחידה:PropertyLink: הבדלים בין גרסאות בדף
מראה
מאין תקציר עריכה |
לבקשת ערן |
||
| שורה 1: | שורה 1: | ||
function property( frame ) | |||
local entity = mw.wikibase.getEntity() | |||
function | if not entity or not entity.claims then return nil end--the entity doesnt exist or have no claims | ||
entity = mw.wikibase.getEntity() | local propertyName = type( frame ) == string and frame or frame.args[1] | ||
if entity | local property = entity.claims[propertyName] | ||
propertyName = | if not property then return '' end--no such property for this item | ||
if property | |||
property = property[0] | property = property[0] | ||
propValue = property.mainsnak.datavalue | local propValue = property.mainsnak and property.mainsnak.datavalue | ||
if propValue | if not propValue then return '' end --property doesnt exist | ||
if propValue['type']=='wikibase-entityid' then | if propValue['type'] == 'wikibase-entityid' then | ||
linkTarget = mw.wikibase.sitelink("Q" .. propValue.value['numeric-id']) | local linkTarget = mw.wikibase.sitelink( "Q" .. propValue.value['numeric-id'] ) | ||
linkTitle = mw.wikibase.label("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 | |||
return '' | |||
elseif propValue['type']=='string' then | |||
return | |||
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 | function label( frame ) | ||
entity = mw.wikibase.getEntity() | local entity = mw.wikibase.getEntity() | ||
if entity | if not entity or not entity.claims then return '' end--the entity doesnt exist or have no claims | ||
propertyName = | 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 | |||
if property | |||
property = property[0] | property = property[0] | ||
propValue = property.mainsnak.datavalue | local propValue = property.mainsnak.datavalue | ||
if propValue | 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 | ||
return | return '' | ||
end | end | ||
--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 | function imageLink( frame ) | ||
entity = mw.wikibase.getEntity() | local entity = mw.wikibase.getEntity() | ||
if entity | if not entity or not entity.claims then return '' end --the entity doesnt exist or have no claims | ||
local property = entity.claims[frame and frame.args and frame.args[1] or "p18"] | |||
if property then | if property then | ||
width = | local width = frame and frame.args and frame.args["width"] or "220" | ||
return mw.usitring.format( '[[File:%s|%spx]]', property, width ) | |||
end | end | ||
return | return '' | ||
end | end | ||
return | return { | ||
imageLink = imageLink, | |||
['תמונה'] = imageLink, | |||
label = label, | |||
['תוית'] = label, | |||
property = property, | |||
['תכונה'] = property, | |||
} | |||
גרסה מ־15:53, 6 באפריל 2013
יחידה זו משמשת כדי לקשר בוויקיפדיה לפי ויקינתונים. היחידה מיועדת לשימוש בעיקר בתבניות וכוללת את הפונקציות הבאות:
- property או מאפיין - לקבלת קישור לפי "קביעה" מוויקינתונים
- label או תווית: דומה לפונקציה הקודמת, רק שלא מחזיר קישור אלא ללא קישור - מחזיר את התווית (label) וללא תלות בקישור כלשהו שקיים או לא קיים בוויקיפדיה בעברית
- פרמטרים: שם המאפיין (property) המתאים (בצורה של P123)
- imageLink או תמונה: פונקציה שמחזירה תמונה שמתאימה לשילוב בתבנית מידע בערך.
- פרמטרים:
- פרמטר ראשון - (אופציונלי) אם לא מקבל פרמטר בכלל משתמש ב־d:Property:p18 (מאפיין כללי של תמונה), אחרת משתמש בפרמטר המאפיין המכיל את התמונה
- width - גודל התמונה (אחרת 220px)
- פרמטרים:
- hasEntry או יש פריט: פונקציה שמחזירה "1" אם לערך יש פריט ויקינתונים; או "" אם אין.
- פרמטרים: אין
הערות נוספות:
- ייתכן שבעתיד תהיה תמיכה מובנית לפחות בחלק מהאפשרויות הנ"ל ראו בmeta:Wikidata/Notes/Inclusion_syntax#Items
function property( frame )
local entity = mw.wikibase.getEntity()
if not entity or not entity.claims then return nil 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
return ''
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
return ''
end
--use this function to get associated image to be used in the article
function imageLink( 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 property = entity.claims[frame and frame.args and frame.args[1] or "p18"]
if property then
local width = frame and frame.args and frame.args["width"] or "220"
return mw.usitring.format( '[[File:%s|%spx]]', property, width )
end
return ''
end
return {
imageLink = imageLink,
['תמונה'] = imageLink,
label = label,
['תוית'] = label,
property = property,
['תכונה'] = property,
}