Modul:Faktenbox/Tabs/Karte/Work

< Modul:Faktenbox‎ | Tabs‎ | Karte
Version vom 8. Dezember 2025, 23:07 Uhr von HeikoBot (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „local p = {} local com = require("Modul:Common") local str = require("Modul:String") local wik = require("Modul:Wiki") local que = require("Modul:Queries") local kar = require("Modul:Karte/Work") local fab_tabs = require("Modul:Faktenbox/Tabs") local fab_common = require("Modul:Faktenbox/Common") function p.kartenTab_(fbdata) -- mw.logObject(fbdata, "kartenTab_(fbdata)") -- Konsolenzeile zum Debuggen: -- fab=require("Modul:Faktenbox/Work"); fab_commo…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Die Dokumentation für dieses Modul kann unter Modul:Faktenbox/Tabs/Karte/Work/Doku erstellt werden

local p = {}

local com = require("Modul:Common")
local str = require("Modul:String")
local wik = require("Modul:Wiki")
local que = require("Modul:Queries")
local kar = require("Modul:Karte/Work")

local fab_tabs = require("Modul:Faktenbox/Tabs")
local fab_common = require("Modul:Faktenbox/Common")

function p.kartenTab_(fbdata)
--	mw.logObject(fbdata, "kartenTab_(fbdata)")
	-- Konsolenzeile zum Debuggen:
	-- fab=require("Modul:Faktenbox/Work"); fab_common = require("Modul:Faktenbox/Common"); fbdata=fab_common.fbdata_{pargs={["location"]="Erlanger Straße 11, Fürth, Bayern, Deutschland",Debug="ja"}}; print(p.kartenTab_(fbdata))
	-- fab=require("Modul:Faktenbox/Work"); fab_common = require("Modul:Faktenbox/Common"); fbdata=fab_common.fbdata_{pargs={["Gebäude"]="Erlanger Straße 11;Erlanger Straße 12",Debug="ja"}}; print(p.kartenTab_(fbdata))
	-- fab=require("Modul:Faktenbox/Work"); fab_common = require("Modul:Faktenbox/Common"); fbdata=fab_common.fbdata_{pargs={["lat"]="49",["lon"]="11",["locationlist"]="ll",["location"]="l",["geojson"]="g",["zoom"]="99",["GeoJsonKarte"]="Ja",["Debug"]="Ja",["Dummy"]="d"}}; print(p.kartenTab_(fbdata))
	t = ""
	if string.find(fbdata.pagename, ";") ~= nil then
		t = t .. "Semikolon im Artikel-/Seitennamen für korrekte Kartendarstellung nicht erlaubt!"
	else
		-- Karten-Argumente übernehmen und aufbereiten
		local args = p.getKartenArgs_(fbdata, 18)
		-- Verwende Geolokation des Gebäudes, sofern vorhanden und wenn keine location oder locationlist übergeben
		if args["location"] == nil and args["locationlist"] == nil and fbdata.pargs["Gebäude"] ~= nil then
			local gebaeude = str.splitAndStrip(fbdata.pargs["Gebäude"], ";")
			if #gebaeude > 0 then -- Gebäude angegeben?
				local locationlist = ""
				for _, g in ipairs(gebaeude) do -- alle Gebäude durchiterieren
					local seite = que.getValues(g, "Seite", true)
					if seite[1] ~= fbdata.pagename then -- Weiterleitung auf sich selbst rausfiltern
						local geolokation = que.getValues(g, "Geolokation", true)
						for _, l in ipairs(geolokation) do -- alle Geolokationen eines Gebäudes durchiterieren
							if locationlist ~= "" then
								locationlist = locationlist .. ";"
							end
							locationlist = locationlist .. l
						end
					end
				end
				if locationlist ~= "" then
					args["locationlist"] = locationlist
				end
			end
		end
		-- Karte erstellen
--		mw.logObject(args, "args")
		t = t .. kar.karte(fbdata.frame, args)
	end
	-- Tab draus machen
	t = fab_tabs.tab_(t, "Karte")
--	mw.logObject(t, "t")
	return t
end

function p.getKartenArgs_(fbdata, zoomdefault)
--	mw.logObject(fbdata, "karte(fbdata, " .. tostring(zoomdefault) .. ")")
	-- Konsolenzeile zum Debuggen:
	-- mw.logObject(p.getKartenArgs_({pagename="pn",pargs={["lat"]="49",["lon"]="11",["locationlist"]="ll",["location"]="l",["geojson"]="g",["zoom"]="99",["GeoJsonKarte"]="Ja",["Debug"]="Ja",["Dummy"]="d",["add"]="a"}}, 11, {"add"}))

	-- nur die benötigten Argumente übernehmen
	local args = {
		"lat", "lon",
		"location", "locationlist",
		"geojson", "GeoJsonKarte",
		"zoom", "Debug", "Ehemals"}
	args = wik.getArgs(fbdata.pargs, args)
	-- geojson ermitteln
	if args["geojson"] == nil and com.isTrue(args["GeoJsonKarte"]) then
		args["geojson"] = fbdata.pagename
	end
	-- Defaults und Sonstiges
	args["zoom"] = args["zoom"] or zoomdefault
	args["width"] = ""															-- passt sich automatisch ein
	args["height"] = ""															-- passt sich automatisch ein
	args["box"] = "nein"														-- keine eigene Box, da Teil der Faktenbox
	args["form"] = "ja"															-- Formular-Hinweis
--	mw.logObject(args, "args")
	return args
end

return p