23.104
Bearbeitungen
(+ "seit") |
(+ Gaststätten/Einrichtungen-Tab, div. Überarbeitungen) |
||
| Zeile 6: | Zeile 6: | ||
local smw = require("Modul:SMW") | local smw = require("Modul:SMW") | ||
local wik = require("Modul:Wiki") | local wik = require("Modul:Wiki") | ||
local lfd = require("Modul:LinkFormDatum") | |||
local fab = require("Modul:Faktenbox") | local fab = require("Modul:Faktenbox") | ||
local kar = require("Modul:Karte") | local kar = require("Modul:Karte") | ||
function p.Faktenbox(frame) | function p.Faktenbox(frame) | ||
local t = "" | local t = "" | ||
| Zeile 38: | Zeile 37: | ||
p.datenTab(fbdata) .. | p.datenTab(fbdata) .. | ||
p.residenzTab(fbdata, {ueberschrift = "Personen, die hier wohnen bzw. gewohnt haben:", klasse = "Person", kategorie="Personen"}) .. | p.residenzTab(fbdata, {ueberschrift = "Personen, die hier wohnen bzw. gewohnt haben:", klasse = "Person", kategorie="Personen"}) .. | ||
p.residenzTab(fbdata, {ueberschrift = "Unternehmen, die hier ansässig sind/waren:", klasse = "Unternehmen", kategorie="Unternehmen"}) | p.residenzTab(fbdata, {ueberschrift = "Unternehmen, die hier ansässig sind/waren:", klasse = "Unternehmen", kategorie="Unternehmen"}) .. | ||
p.residenzTab(fbdata, {ueberschrift = "Einrichtungen, die hier ansässig sind/waren:", klasse = "Einrichtung", kategorie="Einrichtungen"}) .. | |||
p.gaststaettenTab(fbdata) | |||
t = fab.factbox_header_footer(t) | t = fab.factbox_header_footer(t) | ||
| Zeile 46: | Zeile 47: | ||
-- Pre-Processing und String-Länge checken | -- Pre-Processing und String-Länge checken | ||
t = fbdata.frame:preprocess(t) | t = fbdata.frame:preprocess(t) | ||
return t | return t | ||
| Zeile 52: | Zeile 52: | ||
function p.datenTab(fbdata, args) | function p.datenTab(fbdata, args) | ||
--[[ Konsolenzeile zum Debuggen (Achtung! Bug in Fehlerbereinigungskonsole! Kann nur 1x ausgeführt werden!): | --[[ Konsolenzeile zum Debuggen (Achtung! Bug in Fehlerbereinigungskonsole! Kann nur 1x ausgeführt werden!): | ||
fab=require("Modul:Faktenbox/Work"); | fab=require("Modul:Faktenbox/Work"); | ||
| Zeile 108: | Zeile 105: | ||
-- Tab draus machen | -- Tab draus machen | ||
t = fab.tab(t, args.tabname or "Daten") | t = fab.tab(t, args.tabname or "Daten") | ||
return t | return t | ||
end | end | ||
function p.kartenTab(fbdata) | function p.kartenTab(fbdata) | ||
-- Konsolenzeile zum Debuggen: | -- Konsolenzeile zum Debuggen: | ||
-- fab=require("Modul:Faktenbox/Work"); fbdata=fab.fbdata{pargs={["Straße"]="Erlanger Straße",["Hausnummer"]="11"}}; fbdata.plz=90765; print(p.kartenTab(fbdata)) | -- fab=require("Modul:Faktenbox/Work"); fbdata=fab.fbdata{pargs={["Straße"]="Erlanger Straße",["Hausnummer"]="11"}}; fbdata.plz=90765; print(p.kartenTab(fbdata)) | ||
| Zeile 138: | Zeile 132: | ||
args["location"] = nil | args["location"] = nil | ||
-- Karte erstellen | -- Karte erstellen | ||
local t_karte = "" | local t_karte = "" | ||
if kar.kartenArgsVorhanden(args) or not com.isTrue(args["Ehemals"]) then | if kar.kartenArgsVorhanden(args) or not com.isTrue(args["Ehemals"]) then | ||
| Zeile 147: | Zeile 140: | ||
-- Tab draus machen | -- Tab draus machen | ||
t = fab.tab(t, "Karte") | t = fab.tab(t, "Karte") | ||
return t | return t | ||
end | end | ||
function p.strasseHnrParser(fbdata) | function p.strasseHnrParser(fbdata) | ||
-- Konsolenzeile zum Debuggen: | -- Konsolenzeile zum Debuggen: | ||
-- p.strasseHnrParser{pargs={["Straße"]="Elanger Straße",["Hausnummer"]="11;13",["Straße2"]="Frühlingstraße",["Hausnummer2"]="",["Straße3"]="",["Hausnummer3"]=""}} | -- p.strasseHnrParser{pargs={["Straße"]="Elanger Straße",["Hausnummer"]="11;13",["Straße2"]="Frühlingstraße",["Hausnummer2"]="",["Straße3"]="",["Hausnummer3"]=""}} | ||
| Zeile 199: | Zeile 189: | ||
end | end | ||
end | end | ||
return result | return result | ||
end | end | ||
function p.residenzTab(fbdata, args) | function p.residenzTab(fbdata, args) | ||
-- Konsolenzeile zum Debuggen: | -- Konsolenzeile zum Debuggen: | ||
-- =p.residenzTab({subpagename="Schwabacher Straße 12",fullpagename="Schwabacher Straße 12",strasse_hnr={strasse={{name="Schwabacher Straße",hausnummer={"12"}}}}}, "Unternehmen, die hier ansässig sind/waren:", "Unternehmen", "Unternehmen") | -- =p.residenzTab({subpagename="Schwabacher Straße 12",fullpagename="Schwabacher Straße 12",strasse_hnr={strasse={{name="Schwabacher Straße",hausnummer={"12"}}}}}, "Unternehmen, die hier ansässig sind/waren:", "Unternehmen", "Unternehmen") | ||
| Zeile 212: | Zeile 198: | ||
-- DB-Abfrage | -- DB-Abfrage | ||
local query = "[[:+]][[-Has subobject::+]][[SubObjektTyp::Adresse]][[ | local query = {"[[:+]][[-Has subobject::+]][[SubObjektTyp::Adresse]]" .. | ||
"[[Gebäude::" .. fbdata.pagename.. "]]" .. | |||
"[[-Has subobject.KlassenName::" .. args.klasse .. "]]", | |||
"?-has subobject=", "?Adressart", "?AdresseVon", "?AdresseBis", | |||
["mainlabel"] = "-", ["limit"]=100} | |||
query = mw.smw.ask(query) or {} | |||
-- Zeilen zusammenbauen | -- Zeilen zusammenbauen | ||
for i, z in ipairs( | for i, z in ipairs(query) do -- Ergebniszeile durchiterieren | ||
if i == 1 then | if i == 1 then | ||
t = t .. args.ueberschrift .. "\n" -- Text vor der eigentlichen Liste | t = t .. args.ueberschrift .. "\n" -- Text vor der eigentlichen Liste | ||
end | end | ||
t = t .. "* | t = t .. "* " .. z[1] -- immer vorhanden | ||
local vonbis = p.vonBisText(z.AdresseVon, z.AdresseBis) | |||
if z.Adressart ~= nil or vonbis ~= nil then | |||
local l = {z.Adressart} | |||
table.insert(l, vonbis) | |||
if z.Adressart ~= | t = t .. " (" .. table.concat(l, ", ") .. ")" | ||
end | end | ||
t = t .. "\n" | t = t .. "\n" | ||
| Zeile 278: | Zeile 247: | ||
-- Tab draus machen | -- Tab draus machen | ||
t = fab.tab(t, args.kategorie) | t = fab.tab(t, args.kategorie) | ||
-- mw. | return t | ||
end | |||
function p.gaststaettenTab(fbdata) | |||
-- Konsolenzeile zum Debuggen: | |||
-- =p.gaststaettenTab({subpagename="Schwabacher Straße 12",fullpagename="Schwabacher Straße 12",strasse_hnr={strasse={{name="Schwabacher Straße",hausnummer={"12"}}}}}, "Unternehmen, die hier ansässig sind/waren:", "Unternehmen", "Unternehmen") | |||
local t = "" | |||
-- DB-Abfrage | |||
local query = {"[[:+]][[KlassenName::Gaststätte]]" .. | |||
"[[Gebäude::" .. fbdata.pagename.. "]]", | |||
"?Eröffnungsdatum", "?Schließungsdatum", | |||
["limit"]=100} | |||
query = mw.smw.ask(query) | |||
-- Zeilen zusammenbauen | |||
for i, z in ipairs(query or {}) do | |||
if i == 1 then | |||
t = t .. "Gaststätten, die hier ansässig sind/waren:\n" | |||
end | |||
t = t .. "* " .. z[1] | |||
local vonbis = p.vonBisText(z["Eröffnungsdatum"], z["Schließungsdatum"]) | |||
if vonbis ~= nil then | |||
t = t .. " (" .. vonbis .. ")" | |||
end | |||
t = t .. "\n" | |||
end | |||
if t ~= "" then | |||
t = t .. "<br>" .. fab.zeileSemantikBrowsenAbfrage(fbdata) | |||
end | |||
-- Tab draus machen | |||
t = fab.tab(t, "Gaststätten") | |||
return t | return t | ||
end | end | ||
function p.opferShoah(fbdata) | function p.opferShoah(fbdata) | ||
-- Konsolenzeile zum Debuggen: | -- Konsolenzeile zum Debuggen: | ||
-- fbdata={pagename="Hallemannstraße 2, 2a"}; mw.logObject(p.opferShoah(fbdata)) | -- fbdata={pagename="Hallemannstraße 2, 2a"}; mw.logObject(p.opferShoah(fbdata)) | ||
| Zeile 290: | Zeile 290: | ||
-- DB-Abfrage | -- DB-Abfrage | ||
local query = "[[SubObjektTyp::Opfer der Shoah]]" | local query = "[[SubObjektTyp::Opfer der Shoah]]" | ||
query = query .. "[[ | query = query .. "[[Gebäude::" .. fbdata.pagename .. "]]" | ||
query = query .. "|?Vorname" | query = query .. "|?Vorname" | ||
query = query .. "|?Nachname" | query = query .. "|?Nachname" | ||
| Zeile 296: | Zeile 296: | ||
query = query .. "|limit=100" | query = query .. "|limit=100" | ||
local ask_result = mw.smw.ask(query) | local ask_result = mw.smw.ask(query) | ||
return ask_result | return ask_result | ||
end | end | ||
function p.getPlz(fbdata) | function p.getPlz(fbdata) | ||
-- Konsolenzeile zum Debuggen: | -- Konsolenzeile zum Debuggen: | ||
-- =p.getPlz{strasse_hnr={strasse={{name="Erlanger Straße",hausnummer={"11","13"},suspekt=false},{name="Schwabacher Straße",hausnummer={1}}}}} | -- =p.getPlz{strasse_hnr={strasse={{name="Erlanger Straße",hausnummer={"11","13"},suspekt=false},{name="Schwabacher Straße",hausnummer={1}}}}} | ||
| Zeile 311: | Zeile 308: | ||
else | else | ||
end | end | ||
return plz | return plz | ||
end | end | ||
function p.teilDesGebaeudeKomplexes(fbdata) | function p.teilDesGebaeudeKomplexes(fbdata) | ||
-- Konsolenzeile zum Debuggen: | -- Konsolenzeile zum Debuggen: | ||
-- =p.teilDesGebaeudeKomplexes{pargs={["TeilDesGebäudeKomplexes"]="Rathaus"},fullpagename="Badstraße 15",subpagename="Badstraße 15"} | -- =p.teilDesGebaeudeKomplexes{pargs={["TeilDesGebäudeKomplexes"]="Rathaus"},fullpagename="Badstraße 15",subpagename="Badstraße 15"} | ||
local teil_des_gebaeude_komplexes = str.splitAndStrip(fbdata.pargs["TeilDesGebäudeKomplexes"], ";") | local teil_des_gebaeude_komplexes = str.splitAndStrip(fbdata.pargs["TeilDesGebäudeKomplexes"], ";") | ||
local query = "[[:+]][[!" .. fbdata.fullpagename .. "]][[Kategorie:Gebäude]][[StraßeHnr::" .. fbdata.subpagename .. "]] [[AnzahlGebäude::>2]]" | local query = "[[:+]][[!" .. fbdata.fullpagename .. "]][[Kategorie:Gebäude]][[StraßeHnr::" .. fbdata.subpagename .. "]] [[AnzahlGebäude::>2]]" | ||
local query_result = smw.getPages(query, true) | local query_result = smw.getPages(query, true) | ||
teil_des_gebaeude_komplexes = com.append_tables(teil_des_gebaeude_komplexes, query_result) | teil_des_gebaeude_komplexes = com.append_tables(teil_des_gebaeude_komplexes, query_result) | ||
return teil_des_gebaeude_komplexes | return teil_des_gebaeude_komplexes | ||
end | end | ||
function p.weiterleitung(fbdata) | function p.weiterleitung(fbdata) | ||
-- Konsolenzeile zum Debuggen: | -- Konsolenzeile zum Debuggen: | ||
-- fab=require("Modul:Faktenbox/Work"); fbdata=fab.fbdata{pargs={location="Badstraße 15,Fürth,Bayern,Deutschland",["TeilDesGebäudeKomplexes"]="Badstraße 13, 15, 18, Pfisterstraße 50, 52"}}; print(p.weiterleitung(fbdata)) | -- fab=require("Modul:Faktenbox/Work"); fbdata=fab.fbdata{pargs={location="Badstraße 15,Fürth,Bayern,Deutschland",["TeilDesGebäudeKomplexes"]="Badstraße 13, 15, 18, Pfisterstraße 50, 52"}}; print(p.weiterleitung(fbdata)) | ||
| Zeile 346: | Zeile 335: | ||
end | end | ||
t = t .. "* Geolokation: " .. location .. "\n" | t = t .. "* Geolokation: " .. location .. "\n" | ||
-- Koordinate per #geocode ermitteln | -- Koordinate per #geocode ermitteln | ||
local geocode = fbdata.frame:callParserFunction( "#geocode", location ) | local geocode = fbdata.frame:callParserFunction( "#geocode", location ) | ||
if geocode == "Geocoding failed" then | if geocode == "Geocoding failed" then | ||
t = t .. "Geokoordinate konnte nicht ermittelt werden<br>" | t = t .. "Geokoordinate konnte nicht ermittelt werden<br>" | ||
| Zeile 378: | Zeile 365: | ||
end | end | ||
end | end | ||
- | return t | ||
end | |||
function p.vonBisText(von, bis) | |||
local t | |||
von = von or "" | |||
bis = bis or "" | |||
if von ~= "" then | |||
if bis ~= "" then | |||
t = lfd.formatDate(von) .. " - " .. lfd.formatDate(bis) | |||
else | |||
t = "seit " .. lfd.formatDate(von) | |||
end | |||
elseif bis ~= "" then | |||
t = "bis " .. lfd.formatDate(bis) | |||
end | |||
return t | return t | ||
end | end | ||
return p | return p | ||