15.133
Bearbeitungen
(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 | local args = { | ||
lat = fbdata.pargs.lat, location = fbdata.pargs.location, | |||
t = fbdata.frame:expandTemplate{title = " | 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 | ||