Modul:Infobox Stadt

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Die Dokumentation für dieses Modul kann unter Modul:Infobox Stadt/Doku erstellt werden

local exports = {}

function formatiereEinwohnerzahl( zahl )
	return string.gsub( zahl, "(%d%d)(%d%d%d)$", '%1.%2' )
end

function exports.Infobox( frame )
	local id = mw.wikibase.getEntityIdForCurrentPage()
	local item = mw.wikibase.getEntityObject()

	local statements = mw.wikibase.getBestStatements( id, 'P166971' )
	local einwohner
	if not statements[1] then
		einwohner = 'unbekannt'
			.. '[[Kategorie:Einwohnerzahl bei Wikidata fehlt]]'
	else
		local snak = statements[1].mainsnak

		-- Den Snak mit dem Wikibase-Formatierer im Standard-Format formatieren
		-- einwohner = mw.wikibase.formatValue( snak )

		-- Oder selbst formatieren
		local einwohnerzahl = tonumber( snak.datavalue.value.amount )
		einwohner = formatiereEinwohnerzahl( einwohnerzahl )

		if frame.args.Einwohner ~= '' and einwohnerzahl ~= tonumber( frame.args.Einwohner ) then
			einwohner = einwohner .. '[[Kategorie:Einwohnerzahl bei Wikidata verschieden]]'
		end

		if statements[2] then
			einwohner = einwohner .. ' (['
				.. '//wikidata.beta.wmflabs.org/wiki/' .. id .. '#P166971'
				.. ' weitere Angaben vorhanden])'
		end
	end

	local statements = mw.wikibase.getBestStatements( id, 'P166922' )
	local plz = ''

	-- Sammle alle Main-Snaks in einer Lua-Tabelle und formatiere sie mit dem
	-- Wikibase-Formatierer im Standard-Format (Komma-getrennt)
	-- local snaks = {}
	-- for index, statement in pairs( statements ) do
	-- 	table.insert( snaks, statement.mainsnak )
	-- end
	-- plz = mw.wikibase.formatValues( snaks )

	-- Oder selbst formatieren
	for index, statement in pairs( statements ) do
		if plz ~= '' then
			plz = plz .. ', '
		end
		plz = plz .. statement.mainsnak.datavalue.value
	end

	return '{| class="wikitable" style="float: right; width: 300px;"\n'
		.. '| Einwohner || ' .. einwohner .. '\n'
		.. '|-\n'
		.. '| Postleitzahl || ' .. plz .. '\n'
		.. '|}'
		--.. '<pre>' .. mw.dumpObject( statements ) .. '</pre>'
end

return exports