Modulo:Commonscat

El Vikipedio, la libera enciklopedio

Dokumentado por ĉi tiu modulo povas esti kreata ĉe Modulo:Commonscat/dokumentado

require('strict')

local p = {}

function p.print(frame)
	local parent = frame:getParent()
	local params = parent and parent.args or {}
	local title = mw.title.getCurrentTitle()
	local pagename = title.text
	local namespace = title.namespace
	local link, show, cats = '', '', ''
	local Wikidata = require 'Modulo:Wikidata2'
	local wd = false
	local sitelink = Wikidata.getSitelinkFromLua{ site = 'commonswiki' }
	local property = Wikidata.getRawValueFromLua{ property = 'P373' }
	if params[1] and params[1] ~= '' then
		link = 'Category:' .. params[1]
		if (
			(namespace == 0 or namespace == 14) and
			(not params['loke'] or params['loke'] ~= 'jes')
		) then
			if not property then
				cats = cats .. '[[Kategorio:Komuneja kategorio ne estas en Vikidatumoj|' .. pagename .. ']]'
			end
		--	local Check = require 'Modul:WikidataCheck'
		--	cats = cats .. Check.wikidatacheck({ args =
		--		{ value = link, category = 'Commonscat', property = 'P373', namespaces = '0,14' }
		--	}) or ''
		end
	else
		if property then
			link = 'Category:' .. property -- upřednostni vlastnost
			wd = true
		else
			link = sitelink -- vlastnost není, zkus odkaz z Wikidat
			if not (link and mw.ustring.find(link, 'Category:')) then
				link = 'Category:' .. pagename -- nebo název stránky
			else
				wd = true
			end
		end
	end
	-- pokud dostupné, srovnej vlastnost i odkaz
	if (
		sitelink and mw.ustring.find(sitelink, 'Category:')
		and property and sitelink ~= ('Category:' .. property)
	) then
		cats = cats .. '[[Kategorio:Komuneja kategorio kun loka ligilo malsama kiel en Vikidatumoj|' .. pagename .. ']]'
	end
	if params[2] and params[2] ~= '' then
		show = params[2] -- zobraz lokální popis
	elseif namespace ~= 0 then
		show = pagename
	else
		show = mw.wikibase.label() -- nebo štítek
		if not show or show == '' then
			show = pagename -- nebo název stránky
			cats = cats .. '[[Kategorio:Artikoloj sen etikedon en Vikidatumoj|' .. pagename .. ']]'
		end
	end

	local output = ""

	output = output .. "<span class=\"sisterproject sisterproject-commons\">"
	output = output .. "<span class=\"sisterproject_image\">[[Dosiero:Commons-logo.svg|16x16px|alt=Logo Wikimedia Commons|link=Wikimedia Commons]]</span> "
	output = output .. "<span class=\"sisterproject_text\">Bildoj, sonoj kaj videoj pri temo "
	output = output .. "<span class=\"sisterproject_text_target\">[[c:" .. link .. "|" .. show .. "]]</span> "
	output = output .. "en [[Vikimedia Komunejo]]</span>"
	output = output .. "</span>" .. cats

	if wd then
		local lib = require 'Modulo:Wikidata/lib'
		output = lib.addWdClass(output)
	end

	output = frame:preprocess(output)

	return output
end

return p