Módulo:PropertyLink

A documentação para este módulo pode ser criada na página Módulo:PropertyLink/doc

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(string.lower(frame.args[1]))
end
	
function getLabel( 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.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
	
-- Return the label for property, or the label of the linked entiy of that property
function label( frame )
				return getLabel( string.lower(frame.args[1] ))
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.ustring.format( '[[File:%s|%spx]]', property[0].mainsnak.datavalue.value, width )
				end
end
	
--use this function to get associated image to be used in the article
function imageLink( frame )
				return getImageLink( string.lower(frame.args[1]), frame.args["width"])
end
	
return {
				imageLink = imageLink,
				Image = imageLink,
				File = imageLink,
				label = label,
				Label = label,
				property = property,
				Property = property,
				getProperty = getProperty,
				getImageLink = getImageLink,
				getLabel = getLabel
}