15.082
Bearbeitungen
(pageExists) |
(adressenTab_(fbdata) => lua) |
||
| Zeile 5: | Zeile 5: | ||
local wik = require("Modul:Wiki") | local wik = require("Modul:Wiki") | ||
local que = require("Modul:Queries") | local que = require("Modul:Queries") | ||
local lfd = require("Modul:LinkFormDatum") | |||
local fab_zeilen = require("Modul:Faktenbox/Zeilen") | local fab_zeilen = require("Modul:Faktenbox/Zeilen") | ||
| Zeile 173: | Zeile 174: | ||
function p.adressenTab_(fbdata) | function p.adressenTab_(fbdata) | ||
local t = fbdata. | -- mw.log("adressenTab_()") | ||
-- mw.logObject(fbdata) | |||
-- Konsolenzeile zum Debuggen: | |||
-- =p.adressenTab_({fullpagename="Jakob Bock"}) | |||
-- =p.adressenTab_({fullpagename="Ludwig Erhard"}) | |||
-- =p.adressenTab_({fullpagename="Druck & Kopie Hartmann KG"}) | |||
-- =p.adressenTab_({fullpagename="Rathaus"}) | |||
-- =p.adressenTab_({fullpagename="E-Tankstelle Hochstraße"}) | |||
-- =p.adressenTab_({fullpagename="TestPerson2"}) | |||
local t = "" | |||
-- Attribute-Liste | |||
local attr = { | |||
["Adressart"] = { querypostfix = "", default = ""}, | |||
["Straße"] = { querypostfix = "#-", default = ""}, | |||
["Hausnummer"] = { querypostfix = "", default = 0}, | |||
["StraßeHnr"] = { querypostfix = "#-", default = ""}, | |||
["VonObjekt"] = { querypostfix = "#-", default = ""}, | |||
["AdresseVon"] = { querypostfix = "", default = ""}, | |||
["AdresseBis"] = { querypostfix = "", default = ""}, | |||
["Index"] = { querypostfix = "", default = 0} } | |||
-- DB-Abfrage | |||
local query = "[[-Has subobject::".. fbdata.fullpagename .. "]][[SubObjektTyp::Adresse]]|?#-|limit=100" | |||
for i, a in pairs(attr) do | |||
query = query .. "|?" .. i .. a.querypostfix | |||
end | |||
local addresses = mw.smw.ask(query) | |||
if addresses ~= nil then | |||
-- defaults fehlender Attribute setzen | |||
for i, _ in pairs(addresses) do | |||
for j, a in pairs(attr) do | |||
addresses[i][j] = addresses[i][j] or a.default | |||
end | |||
end | |||
-- Tabelle sortieren | |||
table.sort(addresses, function (k1, k2) return k1["Index"] < k2["Index"] end) | |||
-- Liste erstellen | |||
t = t .. "<nowiki></nowiki>\n" -- nötig, warum auch immer, damit erster Listeeintrag richtig gerendert wird | |||
for _, e in ipairs(addresses) do | |||
t = t .. "* " -- Zeilenanfang Liste | |||
-- Straße/Hausnummer ausgeben | |||
if wik.pageExists(e["StraßeHnr"]) then -- Link zu Einzel-Gebäude-Seite | |||
t = t .. "[[" .. e["StraßeHnr"] .. "]]" | |||
elseif wik.pageExists(e["VonObjekt"]) then -- alternativ Link zu Gebäude-Komplex-Seite | |||
t = t .. "[[" .. e["VonObjekt"] .. "|" .. e["StraßeHnr"] .. "]]" | |||
elseif wik.pageExists(e["Straße"]) then -- alternativ Link zu Straße-Seite | |||
t = t .. "[[" .. e["Straße"] .. "]] " .. tostring(e["Hausnummer"]) | |||
else | |||
t = t .. "'''" .. e["StraßeHnr"] .. "'''" -- alternativ nur fetter Text | |||
end | |||
-- Zusatzinfos in Klammern anfügen | |||
local bracket = {} | |||
if e["Adressart"] ~= "" then | |||
table.insert(bracket, e["Adressart"]) | |||
end | |||
if e["AdresseVon"] ~= "" then | |||
table.insert(bracket, "von " .. lfd.formatDate(e["AdresseVon"])) | |||
end | |||
if e["AdresseBis"] ~= "" then | |||
table.insert(bracket, "bis " .. lfd.formatDate(e["AdresseBis"])) | |||
end | |||
if #bracket > 0 then | |||
t = t .. " (" .. table.concat(bracket, " ") ..")" | |||
end | |||
t = t .. "\n" | |||
end | |||
end | |||
-- Tab draus machen | |||
t = p.tab_(t, "Adressen") | t = p.tab_(t, "Adressen") | ||
-- mw.log("t = " .. t) | |||
return t | |||
end | end | ||