Модуль:Песочница/DrSauron

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Документация
local p = {}
-- Форматирование таблицы утверждений
local function formatSnaks(snaks)
	return mw.dumpObject(snaks)
end
-- Форматирование утверждения
local function formatSnak(snak)
	return mw.dumpObject(snak)
end
-- Форматирование таблицы квалификаторов
local function formatQualifiers(qualifiers,property)
	if nill==qualifiers[property] then
		return '—'
	else
		local qualifier=qualifiers[property]
		return formatSnaks(qualifier)
	end
end
-- Форматирование таблицы примечаний
local function formatReferences(references)
	return 'Не поддерживается'
end

-- Отображение таблицы по утверждениям на ВД
-- @entityId 	Код сущности на ВД (в формате Qxxxx) или nil
-- @propertyId	Код свойства на ВД (в формате Pxxxx)
-- @qualifiers	Список квалификаторов, которые нужно вывести
function p.renderTable(entityId,propertyId,qualifiers)
	local entity=mw.wikibase.getEntity(entityId)
	local claims=entity.claims[propertyId]
	if nil==claims then
		return "Информация отсутствует в Викиданных"
	end
	local result='';
	for i,claim in ipairs(claims) do
		result=result..'|-\n'
		for j,qualifier in ipairs(qualifiers) do
			result=result..'| '
			if qualifier=='mainsnak' then
				result=result..formatSnak(claim.mainsnak)
			elseif qualifier=='references' then
				result=result..formatReferences(claim.references)
			else
				result=result..formatQualifiers(claim.qualifiers,qualifier)
			end
			result=result..'\n'
		end
	end
	return result
end
-- Отображение истории версий с ВД
local WD_VERSION_PROPERTY='P348';
function p.versionHistory(frame)
	return p.renderTable(frame.args[1],WD_VERSION_PROPERTY,{'mainsnak','P577','references'});
end
return p