Модуль:Зьвязаныя аб’екты

З пляцоўкі Вікікрыніцы
Jump to navigation Jump to search

Дакументацыю да гэтага модуля можна стварыць у Модуль:Зьвязаныя аб’екты/Дакументацыя

local p = {}

local sites = { -- interwiki prefix, parameter, label and site id (for Wikidata)
	{ 'w', 'wikipedia', 'артыкул у Вікіпэдыі', 'be-taraskwiki' },
	{ 'commons', 'commons', 'галерэя ў Вікісховішчы', 'commonswiki' },
	{ 'commons:Category', 'commonscat', 'катэгорыя ў Вікісховішчы', '' },
	{ 'q', 'wikiquote', 'цытаты', 'bewikiquote' },
	{ 'n', 'wikinews', 'навіны', 'enwikinews' },
	{ 'wikt', 'wiktionary', 'тлумачэньне', 'bewiktionary' },
	{ 'b', 'wikibooks', 'падручнік', 'enwikibooks' },
	{ 'v', 'wikiversity', 'навучаньне', 'enwikiversity' },
	{ 'wikispecies', 'wikispecies', 'таксаномія', 'specieswiki' },
	{ 'voy', 'wikivoyage', 'пуцяўнік', 'enwikivoyage' },
	{ 'd', 'wikidata', 'зьвесткі', 'wikidatawiki' },
	{ 'wikilivres', 'вікікнігі', 'wikilivres', '' },
	{ 'm', 'meta', 'Мэта', 'metawiki' }
}

function p.interprojetPart( frame )
	local frame = frame:getParent()
	local item = mw.wikibase.getEntityObject()
	local links = {}

	for _, site in pairs( sites ) do
		local val = ''
		if val == '' and frame.args[site[2]] ~= nil then
			val = frame.args[site[2]]
		end
		if val == '' and site[4] ~= '' and item ~= nil then
			if site[4] == 'wikidatawiki' then
				val = item.id or ''
			else
				val = item:getSitelink( site[4] ) or ''
			end
		end
		if val == '' and site[2] == 'commonscat' and item ~= nil then
			local statements = item:getBestStatements('P373' )
			if statements[1] ~= nil and statements[1].mainsnak.datavalue ~= nil then
				val = statements[1].mainsnak.datavalue.value or ''
			end
		end

		if val ~= '' then
			table.insert( links, '[[' .. site[1] .. ':' .. val .. '|' .. site[3] .. ']]' )
		end
	end

	if next( links ) == nil then
		return ''
	end

	return '<li class="sisitem">'
		.. '<span class="sisicon" style="padding-right:1ex;">[[Файл:Wikimedia-logo.svg|frameless|18px|link=Адмысловае:sitematrix|alt=Зьвязаныя праекты.]]</span>'
		.. '[[Адмысловае:sitematrix|зьвязаныя праекты]]:&#32;' .. table.concat( links, ',&#32;' )
		.. '.</li>'
end

return p