Module: Authority-control

(Created page with "local PROP_FORMATTER_URL = 'P1630' local p = {} p.main = function( frame ) if frame.args.wikidata == nil or frame.args.wikidata == '' then return '' end local item = mw.ext.UnlinkedWikibase.getEntity( frame.args.wikidata ) if item.id == nil then return '' end local out = { 'Wikidata: ' .. item.id .. '' } for _,claim in pairs( item.claims ) do for snakNum,snak in pairs( claim ) do if snak.mainsnak.datatype == 'external-i...")
 
m (1 revision imported)
 
(No difference)

Latest revision as of 18:11, 24 December 2023

Documentation for this module may be created at Module:Authority-control/doc

local PROP_FORMATTER_URL = 'P1630'

local p = {}

p.main = function( frame )
	if frame.args.wikidata == nil or frame.args.wikidata == '' then
		return ''
	end
	local item = mw.ext.UnlinkedWikibase.getEntity( frame.args.wikidata )
	if item.id == nil then
		return ''
	end
	local out = {
		'Wikidata: [[wikidata:' .. item.id .. '|' .. item.id .. ']]'
	}
	for _,claim in pairs( item.claims ) do
		for snakNum,snak in pairs( claim ) do
			if snak.mainsnak.datatype == 'external-id' and snak.mainsnak.snaktype == 'value' then
				local value = snak.mainsnak.datavalue.value
				local authControlItem = mw.ext.UnlinkedWikibase.getEntity( snak.mainsnak.property )
				if authControlItem.claims[PROP_FORMATTER_URL] ~= nil then
					local url = string.gsub( authControlItem.claims[PROP_FORMATTER_URL][1].mainsnak.datavalue.value, '$1', value )
					value = '[' .. url .. ' ' .. value .. ']'
				end
				out[#out + 1] = authControlItem.labels.en.value .. ': ' .. value
			end
		end
	end
	return "<div class='mdl-authority-control'>"
		.. "'''Authority control:''' "
		.. table.concat( out, '; ' )
		.. '</div>'
end

return p
Discuss this page