15.075
Bearbeitungen
(geänderte zeileKategorieSeite()) |
(div. Optimierungen) |
||
| Zeile 14: | Zeile 14: | ||
-- mw.logObject(frame) | -- mw.logObject(frame) | ||
-- Konsolenzeile zum Debuggen | -- Konsolenzeile zum Debuggen: | ||
-- =p.Faktenbox({parentargs={Bild="Schwabacher Straße 12 Dez 2020 1.jpg",["Straße"]="Erlanger Straße",Hausnummer=" 11; 13 ;"}}) | -- =p.Faktenbox({parentargs={Bild="Schwabacher Straße 12 Dez 2020 1.jpg",["Straße"]="Erlanger Straße",Hausnummer=" 11; 13 ;"}}) | ||
local args, noframe = dev.GetParentArgs(frame) | local args, noframe = dev.GetParentArgs(frame) | ||
| Zeile 23: | Zeile 23: | ||
mw.smw.set("KlassenName = " .. klasse) | mw.smw.set("KlassenName = " .. klasse) | ||
-- Straße/Hausnummer Formular-Eingaben analysieren | -- Straße/Hausnummer Formular-Eingaben analysieren, Postleitzahl ermitteln | ||
local | local strasse_hnr = p.strasseHnrParser(args) | ||
local plz = p.getPlz(strasse_hnr) | |||
-- | -- Tabs einsammeln | ||
local | local bild_tab = fab.bildTab(args["Bild"]) | ||
local karten_tab = p.kartenTab(frame, args, noframe) | |||
local daten_tab = p.datenTab{ | |||
frame = frame, args = args, klasse = klasse, kategorie = kategorie, | |||
plz = plz, strasse_hnr = strasse_hnr, geo = true, noframe = noframe | |||
local | |||
local | |||
frame = frame, | |||
plz = plz, | |||
noframe = noframe | |||
} | } | ||
local | local personen_tab = p.residenzTab("Personen, die hier wohnen bzw. gewohnt haben:", "Person", "Personen") | ||
local unternehmen_tab = p.residenzTab("Unternehmen, die hier ansässig sind/waren:", "Unternehmen", "Unternehmen") | |||
local | |||
-- Tabs zusammenfügen | -- Tabs zusammenfügen | ||
local box = | local box = | ||
"<div class = factbox><tabs>" .. | "<div class = factbox><tabs>" .. | ||
bild_tab .. | |||
karten_tab .. | |||
daten_tab .. | |||
personen_tab .. | |||
unternehmen_tab .. | |||
"</tabs></div>" | "</tabs></div>" | ||
-- Sonstige gemeinsame Dinge anfügen (Formular, Kategorien, Wartung, ...) | -- Sonstige gemeinsame Dinge anfügen (Formular, Kategorien, Wartung, ...) | ||
box = box .. fab.common{ | box = box .. fab.common{ | ||
klasse = klasse, | klasse = klasse, kategorie = kategorie, denkmalstatusbesteht = args["DenkmalstatusBesteht"], | ||
bild = args["Bild"], strasse_hnr = strasse_hnr, positionscheck = true, formular = formular | |||
bild = args["Bild"], | |||
} | } | ||
-- mw.log("box = " .. box) | -- mw.log("box = " .. box) | ||
-- | -- Pre-Rendern und String-Länge checken | ||
if not noframe then | if not noframe then | ||
box = frame:preprocess(box) | box = frame:preprocess(box) | ||
end | end | ||
box = box .. com.returnStringCheck(box) | box = box .. com.returnStringCheck(box) | ||
-- mw.log("box = " .. box) | -- mw.log("box = " .. box) | ||
| Zeile 112: | Zeile 66: | ||
-- mw.log("datenTab(args)") | -- mw.log("datenTab(args)") | ||
-- mw.logObject(args) | -- mw.logObject(args) | ||
-- Konsolenzeile zum Debuggen | -- Konsolenzeile zum Debuggen: | ||
-- =p.datenTab({noframe=true,klasse="Gebäude",kategorie="Gebäude",positionscheck=true,work=true,args={}, | -- =p.datenTab({noframe=true,klasse="Gebäude",kategorie="Gebäude",positionscheck=true,work=true,args={},strasse_hnr={strasse={}}}) | ||
local t = "" | local t = "" | ||
local | -- Teil Des Gebäude Komplexes ermitteln und mergen | ||
local teil_des_gebaeude_komplexes = args.args["TeilDesGebäudeKomplexes"] or "" | |||
teil_des_gebaeude_komplexes = str.splitAndStrip(teil_des_gebaeude_komplexes, ";") | |||
local query = "[[:+]][[!" .. wik.pagename() .. "]][[Kategorie:Gebäude]][[StraßeHnr::" .. wik.subpagename() .. "]] [[AnzahlGebäude::>2]]" | local query = "[[:+]][[!" .. wik.pagename() .. "]][[Kategorie:Gebäude]][[StraßeHnr::" .. wik.subpagename() .. "]] [[AnzahlGebäude::>2]]" | ||
-- mw.log("query = " .. query) | -- mw.log("query = " .. query) | ||
local query_result = que.getPages(query, true) | local query_result = que.getPages(query, true) | ||
-- mw.logObject(query_result) | -- mw.logObject(query_result) | ||
teil_des_gebaeude_komplexes = com.append_tables(teil_des_gebaeude_komplexes, query_result) | |||
-- Zusammenbau | |||
t = t .. "<dl class = 'dataTable'>" | t = t .. "<dl class = 'dataTable'>" | ||
t = t .. fab.zeileKategorieSeite(args.klasse, args.kategorie) | t = t .. fab.zeileKategorieSeite(args.klasse, args.kategorie) | ||
t = t .. fab.zeileStrasseHnr(args. | t = t .. fab.zeileStrasseHnr(args.strasse_hnr) | ||
t = t .. fab.zeile("PLZ", args.plz) | t = t .. fab.zeile("PLZ", args.plz) | ||
t = t .. fab.zeile("Objekt", args.args["Objekt"]) | t = t .. fab.zeile("Objekt", args.args["Objekt"]) | ||
t = t .. fab.zeile("TeilDesEnsembles", args.args["TeilDesEnsembles"], "Teil des Ensembles") | t = t .. fab.zeile("TeilDesEnsembles", args.args["TeilDesEnsembles"], "Teil des Ensembles") | ||
t = t .. fab.zeile("TeilDesAreals", args.args["TeilDesAreals"], "Teil des Areals") | t = t .. fab.zeile("TeilDesAreals", args.args["TeilDesAreals"], "Teil des Areals") | ||
t = t .. fab.zeile("TeilDesGebäudeKomplexes", | t = t .. fab.zeile("TeilDesGebäudeKomplexes", teil_des_gebaeude_komplexes, "Teil des Gebäude-Komplexes") | ||
t = t .. fab.zeile("Baujahr", args.args["Baujahr"]) | t = t .. fab.zeile("Baujahr", args.args["Baujahr"]) | ||
t = t .. fab.zeile("Ehemals", args.args["Ehemals"]) | t = t .. fab.zeile("Ehemals", args.args["Ehemals"]) | ||
| Zeile 144: | Zeile 100: | ||
t = t .. "</dl>" | t = t .. "</dl>" | ||
t = t .. fab.faktenboxSemantikBrowsen() | t = t .. fab.faktenboxSemantikBrowsen() | ||
-- Tab draus machen | |||
t = fab.tab(t, args.tabname or "Daten") | |||
-- mw.log("t = " .. t) | -- mw.log("t = " .. t) | ||
return t | return t | ||
| Zeile 154: | Zeile 112: | ||
-- mw.logObject(args) | -- mw.logObject(args) | ||
t = "" | t = "" | ||
if noframe then | local pagename = wik.pagename() | ||
if string.find(pagename, ";") ~= nil then | |||
t = "Semikolon im Artikel-/Seitennamen für korrekte Kartendarstellung nicht erlaubt!" | |||
elseif noframe then | |||
t = "Dummy-Karten-Tab (noframe)" .. | t = "Dummy-Karten-Tab (noframe)" .. | ||
",lat=" .. (lat or "nil") .. | ",lat=" .. (lat or "nil") .. | ||
| Zeile 164: | Zeile 125: | ||
t = frame:expandTemplate{title = 'Gebäude/Karte', args = args} | t = frame:expandTemplate{title = 'Gebäude/Karte', args = args} | ||
end | end | ||
-- Tab draus machen | |||
t = fab.tab(t, "Karte") | |||
-- mw.log("t = " .. t) | -- mw.log("t = " .. t) | ||
return t | return t | ||
| Zeile 174: | Zeile 135: | ||
-- mw.log("strasseHnrProcessor(args)") | -- mw.log("strasseHnrProcessor(args)") | ||
-- mw.logObject(args) | -- mw.logObject(args) | ||
-- Konsolenzeile zum Debuggen | -- Konsolenzeile zum Debuggen: | ||
-- p.strasseHnrParser({["Straße"]="Elanger Straße",["Hausnummer"]="11;13",["Straße2"]="",["Hausnummer2"]="",["Straße3"]="",["Hausnummer3"]=""}) | -- p.strasseHnrParser({["Straße"]="Elanger Straße",["Hausnummer"]="11;13",["Straße2"]="",["Hausnummer2"]="",["Straße3"]="",["Hausnummer3"]=""}) | ||
local result = {} | local result = {} | ||
| Zeile 181: | Zeile 142: | ||
result.anzahlGebaeude = 0 | result.anzahlGebaeude = 0 | ||
local | local strasse_hnr = { | ||
{args["Straße"] or "", args["Hausnummer"] or ""}, | {args["Straße"] or "", args["Hausnummer"] or ""}, | ||
{args["Straße2"] or "", args["Hausnummer2"] or ""}, | {args["Straße2"] or "", args["Hausnummer2"] or ""}, | ||
| Zeile 187: | Zeile 148: | ||
} | } | ||
for _, sh in ipairs( | for _, sh in ipairs(strasse_hnr) do -- Straße/Hausnummern-Kombis durchitereieren | ||
local s = str.strip(sh[1] | local s = str.strip(sh[1]) -- Straße | ||
local hl = str.strip(sh[2] | local hl = str.strip(sh[2]) -- Hausnummernliste | ||
if s == "" then -- kein Problem, wenn eine Straße/Hausnummer-Kombi komplett fehlt (nicht im Formular angegeben) | if s == "" then -- kein Problem, wenn eine Straße/Hausnummer-Kombi komplett fehlt (nicht im Formular angegeben) | ||
if hl ~= "" then -- aber Problem bei fehlender Straße, aber Hausnummernliste vorhanden | if hl ~= "" then -- aber Problem bei fehlender Straße, aber Hausnummernliste vorhanden | ||
| Zeile 199: | Zeile 160: | ||
entry.hausnummer = {} | entry.hausnummer = {} | ||
entry.suspekt = false | entry.suspekt = false | ||
if hl == "" then | if hl == "" then -- leere Hausnummernliste | ||
result.suspekt = true | result.suspekt = true | ||
entry.suspekt = true | entry.suspekt = true | ||
else | else | ||
hl = str.splitAndStrip(hl, ";") -- Liste in table umwandeln | hl = str.splitAndStrip(hl, ";") -- Liste in table umwandeln | ||
for _, h in ipairs(hl) do -- Hausnummern durchitereieren | for _, h in ipairs(hl) do -- Hausnummern durchitereieren | ||
if h == "" then | if h == "" then -- leere Hausnummer | ||
result.suspekt = true | result.suspekt = true | ||
entry.suspekt = true | entry.suspekt = true | ||
else | else | ||
| Zeile 221: | Zeile 182: | ||
end | end | ||
function p.residenzTab(ueberschrift, klasse) | function p.residenzTab(ueberschrift, klasse, kategorie) | ||
-- mw.log("residenzTab(" .. (klasse or "nil") .. ")") | -- mw.log("residenzTab(" .. (klasse or "nil") .. ")") | ||
local t = "" | local t = "" | ||
-- DB-Abfrage | |||
local query = "[[:+]][[-Has subobject::+]][[SubObjektTyp::Adresse]][[VonObjekt::" .. wik.subpagename() .. "]][[-Has subobject.KlassenName::" .. klasse .. "]]" | local query = "[[:+]][[-Has subobject::+]][[SubObjektTyp::Adresse]][[VonObjekt::" .. wik.subpagename() .. "]][[-Has subobject.KlassenName::" .. klasse .. "]]" | ||
query = query .. "|?-has subobject.Seite = Seite|?Adressart|?AdresseVon#-F[j. F Y]|?AdresseBis#-F[j. F Y]|mainlabel = -|limit = 100" | query = query .. "|?-has subobject.Seite = Seite|?Adressart|?AdresseVon#-F[j. F Y]|?AdresseBis#-F[j. F Y]|mainlabel = -|limit = 100" | ||
local | local ask_result = mw.smw.ask(query) | ||
-- mw.logObject( | -- mw.logObject(ask_result) | ||
if | |||
for i, z in ipairs( | -- Zeilen zusammenbauen | ||
if ask_result ~= nil then | |||
for i, z in ipairs(ask_result) do -- Ergebniszeile durchiterieren | |||
if i == 1 then | if i == 1 then | ||
t = t .. ueberschrift .. "\n" -- Text vor der eigentlichen Liste | t = t .. ueberschrift .. "\n" -- Text vor der eigentlichen Liste | ||
| Zeile 258: | Zeile 221: | ||
end | end | ||
end | end | ||
-- Tab draus machen | |||
t = fab.tab(t, kategorie) | |||
-- mw.log("t = " .. t) | -- mw.log("t = " .. t) | ||
return t | return t | ||
end | |||
function p.getPlz(strasse_hnr) | |||
-- mw.log("getPlz(strasse_hnr)") | |||
-- mw.logObject(strasse_hnr) | |||
-- Konsolenzeile zum Debuggen: | |||
-- =p.getPlz({strasse = {{name = "Erlanger Straße", hausnummer = {"11", "13"}}, {name = "XY Straße" , hausnummer = {}}}}) | |||
local plz = "" | |||
if #strasse_hnr.strasse > 0 and not strasse_hnr.strasse[1].suspekt then | |||
-- Es wird angenommen, dass alle Gebäude die gleiche PLZ haben. Hausnummer muss nicht vorhanden sein | |||
plz = geo.getPLZ(strasse_hnr.strasse[1].name, strasse_hnr.strasse[1].hausnummer[1]) | |||
else | |||
end | |||
-- mw.log("plz = " .. plz) | |||
return plz | |||
end | end | ||
return p | return p | ||