15.075
Bearbeitungen
(zeileGeoDaten(fbdata)) |
(+ p.Weiterleitung(frame)) |
||
| Zeile 4: | Zeile 4: | ||
local geo = require("Modul:Geo") | local geo = require("Modul:Geo") | ||
local que = require("Modul:Queries") | local que = require("Modul:Queries") | ||
local wik = require("Modul:Wiki") | |||
local fab = require("Modul:Faktenbox") | local fab = require("Modul:Faktenbox") | ||
| Zeile 42: | Zeile 43: | ||
-- mw.log("box = " .. box) | -- mw.log("box = " .. box) | ||
return box | return box | ||
end | |||
function p.Weiterleitung(frame) | |||
-- mw.log("Weiterleitung(frame)") | |||
-- Konsolenzeile zum Debuggen: | |||
-- =p.Weiterleitung{pargs={location="BlaBla,Fürth,Bayern,Deutschland"}} | |||
local t = "\n'''Dieses ist eine Gebäude-Weiterleitungs-Seite zum zugehörigen Gebäude-Komplex'''\n" | |||
-- Basis-Faktenbox-Daten (Klasse/Kategorie/Formular) | |||
local fbdata = fab.fbdata(frame) | |||
fbdata.klasse = {"Gebäude"} | |||
fbdata.kategorie = {"Gebäude"} | |||
-- Geolokation location ermitteln | |||
local location = fbdata.pargs["location"] or "" -- location vorhanden? | |||
if location == "" then | |||
local lat = fbdata.pargs["lat"] or "" -- lat/lon vorhanden? | |||
local lon = fbdata.pargs["lon"] or "" | |||
if lat ~= "" and lon ~= "" then | |||
location = lat .. "," .. lon | |||
end | |||
end | |||
if location == "" then -- im Zweifelsfall generische location mittels Seitennamen | |||
location = wik.pagename() .. ",Fürth,Bayern,Deutschland" | |||
end | |||
t = t .. "* Geolokation: " .. location .. "\n" | |||
mw.log("location = " .. location) | |||
-- Koordinate per #geocode ermitteln | |||
local geocode = fbdata.frame:callParserFunction( "#geocode", location ) | |||
mw.log("geocode = " .. geocode) | |||
if geocode == "Geocoding failed" then | |||
t = t .. "Geokoordinate konnte nicht ermittelt werden<br>" | |||
else | |||
t = t .. "* Geokoordinate: [[Geokoordinate::" .. geocode .. "]]{{#set:Geolokation=" .. location .. "}}\n" | |||
-- Teil des Gebäude Komplexes ermitteln | |||
local teil_des_gebaeude_komplexes = p.teilDesGebaeudeKomplexes(fbdata) | |||
if #teil_des_gebaeude_komplexes == 0 then | |||
t = t .. "Fehler: Fehlende Angabe zum Gebäude-Komplex!<br>" | |||
else | |||
t = t .. "* Teil des Gebäude-Komplexes: " | |||
for i, k in ipairs(teil_des_gebaeude_komplexes) do | |||
if i > 1 then | |||
t = t .. ", " | |||
end | |||
t = t .. "[[TeilDesGebäudeKomplexes::" .. k .. "]]" | |||
end | |||
t = t .. "\n\nIn wenigen Sekunden erfolgt die Weiterleitung zur Gebäude-Komplex-Seite [[" .. teil_des_gebaeude_komplexes[1] .. "]]{{#widget:Redirect|to=" .. teil_des_gebaeude_komplexes[1] .. "}}\n\n" | |||
-- Sonstige gemeinsame Dinge anfügen (Klasse, Formular, Kategorien, Wartung, ...) | |||
t = t .. "{{#set:Seite=" .. fbdata.fullpagename .. "}}" | |||
t = t .. fab.common(fbdata) | |||
end | |||
end | |||
-- Pre-Processing und String-Länge checken | |||
-- mw.log("t = " .. t) | |||
t = fbdata.frame:preprocess(t) | |||
t = t .. com.returnStringCheck(t) | |||
-- mw.log("t = " .. t) | |||
t = fbdata.frame:preprocess(t) | |||
return t | |||
end | end | ||
| Zeile 68: | Zeile 132: | ||
args = args or {} | args = args or {} | ||
-- Teil des Gebäude Komplexes ermitteln | -- Teil des Gebäude Komplexes ermitteln | ||
local teil_des_gebaeude_komplexes = | local teil_des_gebaeude_komplexes = p.teilDesGebaeudeKomplexes(fbdata) | ||
-- Teil des Ensembles um "Ensemble " ergänzen | -- Teil des Ensembles um "Ensemble " ergänzen | ||
| Zeile 246: | Zeile 304: | ||
-- mw.log("plz = " .. plz) | -- mw.log("plz = " .. plz) | ||
return plz | return plz | ||
end | |||
function p.teilDesGebaeudeKomplexes(fbdata) | |||
-- mw.log("teilDesGebaeudeKomplexes(fbdata)") | |||
-- mw.logObject(fbdata.pargs) | |||
-- Konsolenzeile zum Debuggen: | |||
-- =p.teilDesGebaeudeKomplexes{pargs={["TeilDesGebäudeKomplexes"]="Rathaus"},fullpagename="Badstraße 15",subpagename="Badstraße 15"} | |||
local teil_des_gebaeude_komplexes = fbdata.pargs["TeilDesGebäudeKomplexes"] or "" | |||
teil_des_gebaeude_komplexes = str.splitAndStrip(teil_des_gebaeude_komplexes, ";") | |||
local query = "[[:+]][[!" .. fbdata.fullpagename .. "]][[Kategorie:Gebäude]][[StraßeHnr::" .. fbdata.subpagename .. "]] [[AnzahlGebäude::>2]]" | |||
-- mw.log("query = " .. query) | |||
local query_result = que.getPages(query, true) | |||
-- mw.logObject(query_result) | |||
teil_des_gebaeude_komplexes = com.append_tables(teil_des_gebaeude_komplexes, query_result) | |||
-- mw.logObject(teil_des_gebaeude_komplexes) | |||
return teil_des_gebaeude_komplexes | |||
end | end | ||
return p | return p | ||