Modul:Faktenbox: Unterschied zwischen den Versionen

Vorlage:CommonTabs/Karte in kartenTab() integriert
(attr_text_anzeige ergänzt)
(Vorlage:CommonTabs/Karte in kartenTab() integriert)
Zeile 123: Zeile 123:
-- mw.logObject(fbdata)
-- mw.logObject(fbdata)
-- Konsolenzeile zum Debuggen:
-- Konsolenzeile zum Debuggen:
-- fab=require("Modul:Faktenbox/Work"); fbdata=p.fbdata{pargs={["location"]="Erlanger Straße 11, Fürth, Bayern, Deutschland"}}; print(p.kartenTab(fbdata))
-- fab=require("Modul:Faktenbox/Work"); fbdata=p.fbdata{pargs={["location"]="Erlanger Straße 11, Fürth, Bayern, Deutschland",Debug="ja"}}; print(p.kartenTab(fbdata))
-- fab=require("Modul:Faktenbox/Work"); fbdata=p.fbdata{pargs={["Gebäude"]="Erlanger Straße 11;Erlanger Straße 12",Debug="ja"}}; print(p.kartenTab(fbdata))
t = ""
t = ""
if string.find(fbdata.pagename, ";") ~= nil then
if string.find(fbdata.pagename, ";") ~= nil then
t = "Semikolon im Artikel-/Seitennamen für korrekte Kartendarstellung nicht erlaubt!"
t = "Semikolon im Artikel-/Seitennamen für korrekte Kartendarstellung nicht erlaubt!"
else
else
local args_karte = com.shallowcopy(fbdata.pargs)
local args = {
args_karte["Debug"] = "Nein"
lat = fbdata.pargs.lat, location = fbdata.pargs.location,
t = fbdata.frame:expandTemplate{title = "CommonTabs/Karte", args = args_karte}
lon = fbdata.pargs.lon, locationlist = fbdata.pargs.locationlist,
geojson = fbdata.pargs.geojson, zoom = fbdata.pargs.zoom or "18", -- 18 ist default-zoom
Debug = fbdata.pargs.Debug,
width = "", height = "", -- passt sich beides automatisch an die Box an
box = "nein", form = "ja" -- keine eigene Box; Seite hat Formular
}
-- Wenn kein geojson-Formular-Wert vorgegeben, prüfen,
-- ob sich hinter der Artikelseite eine gleichnamige GeoJson-Karte versteckt oder
-- über Formular-Wert GeoJsonKarte eine Karte aktiviert ist
if com.isEmpty(args.geojson) then
if wik.pageexists("GeoJson:" .. fbdata.pagename) or com.isTrue(fbdata.pargs.GeoJsonKarte) then
args.geojson = fbdata.pagename
end
end
-- Verwende Geolokation des Gebäudes, sofern vorhanden und wenn keine location oder locationlist übergeben
if com.isEmpty(args.location) and com.isEmpty(args.locationlist) then
local gebaeude = str.splitAndStrip(fbdata.pargs["Gebäude"] or "", ";")
if #gebaeude > 0 then -- Gebäude angegeben?
args.locationlist = ""
local first = true
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 first then
first = false
else
args.locationlist = args.locationlist .. ";"
end
args.locationlist = args.locationlist .. l
end
end
end
end
end
-- Karte-Vorlage einbinden
-- mw.logObject(args)
if (not com.isEmpty(args.lat) and not com.isEmpty(args.lon)) or not com.isEmpty(args.location) or not com.isEmpty(args.locationlist) or not com.isEmpty(args.geojson) then
t = fbdata.frame:expandTemplate{title = "Karte", args = args}
end
end
end
-- Tab draus machen
-- Tab draus machen