Module:Authority-control

Revision as of 06:37, 29 June 2023 by Samwilson (talk | contribs) (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...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

See {{authority-control}} for all information.


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