Modul:Wikidata/positions

Vikipediya, azad ensiklopediya
Naviqasiyaya keçin Axtarışa keçin

Bu modulun sənədləşdirmə səhifəsi Modul:Wikidata/positions/doc səhifəsində yaradıla bilər

local p = {}

function p.formatPositionClaim( context, options, statement )
	if (not context) then error('context is not specified') end;
	if (not options) then error('options is not specified') end;
	if (not statement) then error('statement is not specified') end;

	local args = {}
	
	if not statement.qualifiers or not statement.qualifiers['P580'] or not statement.qualifiers['P580'][1] then
		return '' 
	end
	
	if context.formatSnak( options, statement.mainsnak ) ~= nil then
		args['vəzifə_'] = '<span class="ts-wikidata-positions-uppercasefirst">' .. context.formatSnak( options, statement.mainsnak ) .. '</span>'
	end
	if statement.qualifiers and statement.qualifiers['P642']  then
		local organizations = {}
		for _, v in pairs(statement.qualifiers['P642']) do
			table.insert(organizations, context.formatSnak( options, v ))
		end
		if args['vəzifə_'] ~= nil and organizations ~= nil then
			args['vəzifə_'] = args['vəzifə_'] .. ' (' .. mw.text.listToText(organizations) .. ')'
		end
	end
	
	local params = {
		['başlanğıc_'] = 'P580',
		['son_'] = 'P582',
		['əvvəlki_'] = 'P1365',
		['sonrakı_'] = 'P1366',
		['seçki dairəsi_'] = 'P768',
	}
	if statement.qualifiers and args['vəzifə_'] ~= nil then
		for k, v in pairs(params) do
			if statement.qualifiers[v] then
				args[k] = context.formatSnak( options, statement.qualifiers[v][1] )
			end
		end
		else
			return nil
	end
	
	local res = options.frame:extensionTag( 'templatestyles', '', { src = 'Şablon:Wikidata/positions/styles.css' } );
	res = res .. options.frame:expandTemplate{ title = 'Vəzifəli şəxs/vəzifə', args = args }; 
	return res
end

return p