15.976
Bearbeitungen
(rework fbdata) |
(+ Faktenbox(), datenTabUniversal(), kartenTab()) |
||
| Zeile 8: | Zeile 8: | ||
local lfd = require("Modul:LinkFormDatum") | local lfd = require("Modul:LinkFormDatum") | ||
function p. | function p.Faktenbox(frame) | ||
-- mw.log(" | -- mw.log("Faktenbox(frame)") | ||
-- mw.logObject( | -- mw.logObject(frame) | ||
-- Konsolenzeile zum Debuggen: | |||
-- =p.Faktenbox{pargs={Bild="Schwabacher Straße 12 Dez 2020 1.jpg",["Straße"]="Schwabacher Straße",location="Rathaus Fürth",Objekt="Häusle"}} | |||
-- Basis-Faktenbox-Daten (Klasse/Kategorie/Formular) | |||
-- Kein(e) Klasse/Kategorie/Formular! | |||
local fbdata = p.fbdata(frame) | |||
-- Tabs einsammeln und zusammenfügen | |||
local box = | |||
"<div class = factbox><tabs>" .. | |||
p.bildTab(fbdata) .. | |||
p.kartenTab(fbdata) .. | |||
p.datenTabUniversal(fbdata) .. | |||
"</tabs></div>" | |||
-- Sonstige gemeinsame Dinge anfügen (Klasse, Formular, Kategorien, Wartung, ...) | |||
box = box .. p.common(fbdata, false) | |||
mw.log("box = " .. box) | |||
-- Pre-Processing und String-Länge checken | |||
box = fbdata.frame:preprocess(box) | |||
box = box .. com.returnStringCheck(box) | |||
-- mw.log("box = " .. box) | |||
return box | |||
end | |||
function p.datenTabUniversal(fbdata) | |||
-- mw.log("datenTab(fbdata)") | |||
-- mw.logObject(fbdata) | |||
-- Konsolenzeile zum Debuggen (Achtung! Bug in Fehlerbereinigungskonsole! Kann nur 1x ausgeführt werden!): | |||
-- fab=require("Modul:Faktenbox/Work"); fbdata=p.fbdata{pargs={lat="Bla", Objekt="Häusle", Test="BlaBla"}}; print(p.datenTab(fbdata)) | |||
local t = "" | local t = "" | ||
local no_show_attr = { | |||
if | ["Bild"] = true, | ||
["lat"] = true, ["lon"] = true, ["location"] = true,["locationlist"] = true, ["geojson"] = true, | |||
["zoom"] = true, ["popuptitle"] = true, ["popuptext"] = true | |||
} | |||
-- Zusammenbau | |||
t = t .. "<dl class = 'dataTable'>" | |||
for a, _ in pairs(fbdata.pargs) do | |||
if not com.isTrue(no_show_attr[a]) then | |||
t = t .. p.zeilePargs(fbdata, {a}) | |||
end | end | ||
end | |||
t = t .. "</dl>" | |||
t = t .. p.faktenboxSemantikBrowsen(fbdata) | |||
-- Tab draus machen | |||
t = p.tab(t, "Daten") | |||
-- mw.log("t = " .. t) | |||
return t | |||
t = t .. | end | ||
function p.bildTab(fbdata, seite) | |||
-- mw.log("bild(fbdata, " .. (seite or "nil") .. ")") | |||
-- mw.logObject(fbdata.pargs) | |||
-- Konsolenzeile zum Debuggen: | |||
-- =p.bildTab{pargs={Bild="Erloeserkirche.jpg"}} | |||
local t = "" | |||
local beschreibung = que.getValues("Datei:" .. (fbdata.pargs.Bild or ""), "Beschreibung") | |||
local beschreibung = beschreibung[1] or "" | |||
if not com.isEmpty(fbdata.pargs.Bild) and wik.pageexists("Bild:" .. fbdata.pargs.Bild) then | |||
t = t .. '{| class = "factbox_imagetable" border = "0" cellpadding = "0" cellspacing = "0" width = "100%"\n' | |||
t = t .. '|-\n' | |||
t = t .. '|[[Bild::Datei:' .. fbdata.pargs.Bild .. '|768px|link=' .. (seite or '') .. ']]\n' | |||
if beschreibung ~= "" then | |||
t = t .. '|-\n' | |||
t = t .. '|' .. beschreibung .. '\n' | |||
end | end | ||
t = t .. '|}' | |||
end | end | ||
-- Tab draus machen | |||
t = p.tab(t, "Bild") | |||
-- mw.log("t = " .. t) | -- mw.log("t = " .. t) | ||
return t | return t | ||
end | end | ||
function p. | function p.kartenTab(fbdata) | ||
-- mw.log(" | -- mw.log("kartenTab(fbdata)") | ||
-- mw.logObject(fbdata | -- mw.logObject(fbdata) | ||
-- Konsolenzeile zum Debuggen: | -- Konsolenzeile zum Debuggen: | ||
-- =p. | -- fab=require("Modul:Faktenbox/Work"); fbdata=p.fbdata{pargs={["location"]="Erlanger Straße 11, Fürth, Bayern, Deutschland"}}; print(p.kartenTab(fbdata)) | ||
t = "" | |||
if string.find(fbdata.pagename, ";") ~= nil then | |||
t = "Semikolon im Artikel-/Seitennamen für korrekte Kartendarstellung nicht erlaubt!" | |||
else | |||
local args_karte = com.shallowcopy(fbdata.pargs) | |||
[" | args_karte["Debug"] = "Nein" | ||
t = fbdata.frame:expandTemplate{title = "CommonTabs/Karte", args = args_karte} | |||
t = | |||
end | end | ||
-- Tab draus machen | |||
t = p.tab(t, "Karte") | |||
-- mw.log("t = " .. t) | -- mw.log("t = " .. t) | ||
return t | return t | ||
| Zeile 153: | Zeile 211: | ||
t = t .. lfd.linkFormDate(date, args.attr_date, args.attr_day, args.attr_year) | t = t .. lfd.linkFormDate(date, args.attr_date, args.attr_day, args.attr_year) | ||
t = t .. "</dd>" | t = t .. "</dd>" | ||
end | |||
-- mw.log("t = " .. t) | |||
return t | |||
end | |||
function p.zeilePargs(fbdata, attr_names) | |||
-- mw.log("zeilePargs(fbdata, " .. (attr_name or "nil") .. ", " .. (attr_text or "nil") .. ")") | |||
-- mw.logObject(fbdata.pargs or {}) | |||
-- Konsolenzeile zum Debuggen: | |||
-- =p.zeilePargs({pargs={test=123,TeilDesEnsembles="bla"}}, {"test","TeilDesEnsembles","Blub"}) | |||
local t = "" | |||
local attr_text = { | |||
["TeilDesEnsembles"]="Teil des Ensembles", | |||
["TeilDesAreals"]="Teil des Areals", | |||
["TeilDesGebäudeKomplexes"]="Teil des Gebäude-Komplexes", | |||
["DenkmalstatusBesteht"]="Denkmalstatus besteht" | |||
} | |||
for _, a in ipairs(attr_names) do | |||
t = t .. p.zeile(a, fbdata.pargs[a], attr_text[a]) | |||
end | |||
-- mw.log("t = " .. t) | |||
return t | |||
end | |||
function p.zeile(attr_name, val, attr_text) | |||
-- mw.log("zeile(" .. (attr_name or "nil") .. ", val, " .. (attr_text or "nil") .. ")") | |||
-- mw.logObject(val or {}) | |||
local t = "" | |||
if mw.smw.getPropertyType(attr_name) ~= nil then | |||
if type(val) ~= "table" then | |||
val = str.splitAndStrip(val or "", ";") | |||
end | |||
if #val > 0 then | |||
t = t .. "<dt>" .. "[[Attribut:" .. attr_name .. "|" .. (attr_text or attr_name) .. "]]</dt><dd>" | |||
for i, v in ipairs(val) do | |||
if i > 1 then | |||
t = t .. ", " | |||
end | |||
t = t .. "[[" .. attr_name .. "::" .. v .. "]]" | |||
end | |||
t = t .. "</dd>" | |||
end | |||
end | end | ||
-- mw.log("t = " .. t) | -- mw.log("t = " .. t) | ||
| Zeile 168: | Zeile 268: | ||
t = t .. "<dd>[[Spezial:Durchsuchen/" .. fbdata.fullpagename .. "|Semantisches Browsen]]</dd>" | t = t .. "<dd>[[Spezial:Durchsuchen/" .. fbdata.fullpagename .. "|Semantisches Browsen]]</dd>" | ||
t = t .. "</dl>" | t = t .. "</dl>" | ||
-- mw.log("t = " .. t) | -- mw.log("t = " .. t) | ||
return t | return t | ||
| Zeile 197: | Zeile 273: | ||
function p.common(fbdata, positionscheck) | function p.common(fbdata, positionscheck) | ||
-- mw.log("common(fbdata)") | |||
-- mw.logObject(fbdata) | |||
-- Konsolenzeile zum Debuggen: | -- Konsolenzeile zum Debuggen: | ||
-- =p.common{formular="Gebäude/Work",klasse={"Gebäude","Kirche"},kategorie={"Gebäude","Kirchen"},strasse_hnr={suspekt=true},positionscheck=true,pargs={Bild="Angie Oeckl.JPG",Ehemals="Ja",DenkmalstatusBesteht="Ja",Stadtteil="Ronhof; Nordstadt ",location="bla"},pagename="Test/Test;Test"} | -- =p.common{formular="Gebäude/Work",klasse={"Gebäude","Kirche"},kategorie={"Gebäude","Kirchen"},strasse_hnr={suspekt=true},positionscheck=true,pargs={Bild="Angie Oeckl.JPG",Ehemals="Ja",DenkmalstatusBesteht="Ja",Stadtteil="Ronhof; Nordstadt ",location="bla"},pagename="Test/Test;Test"} | ||
local t = "" | local t = "" | ||
-- Klasse | -- Klasse | ||
t = t .. "{{#set:KlassenName=" .. fbdata.klasse[1] .. "}}" | if fbdata.klasse ~= nil then | ||
t = t .. "{{#set:KlassenName=" .. fbdata.klasse[1] .. "}}" | |||
end | |||
-- Formular | -- Formular | ||
t = t .. "{{#default_form:" .. fbdata.formular .. "}}" | if fbdata.formular ~= nil then | ||
t = t .. "{{#default_form:" .. fbdata.formular .. "}}" | |||
end | |||
-- Kategorien | -- Kategorien | ||
local ehemals_text = "" | local ehemals_text = "" | ||
| Zeile 211: | Zeile 291: | ||
ehemals_text = " (ehemals)" | ehemals_text = " (ehemals)" | ||
end | end | ||
for _, k in ipairs(fbdata.kategorie) do | if fbdata.kategorie ~= nil then | ||
for _, k in ipairs(fbdata.kategorie) do | |||
t = t .. "[[Kategorie:" .. k .. ehemals_text .. "]]" | |||
end | |||
end | end | ||
if com.isTrue(fbdata.pargs.DenkmalstatusBesteht) then | if com.isTrue(fbdata.pargs.DenkmalstatusBesteht) then | ||
| Zeile 224: | Zeile 306: | ||
-- Wartungs-Kategorien | -- Wartungs-Kategorien | ||
if com.isEmpty(fbdata.pargs.Bild) then | if com.isEmpty(fbdata.pargs.Bild) then | ||
t = t .. "[[Kategorie:" .. fbdata.kategorie[1] .. " ohne Bild]]" | if fbdata.kategorie ~= nil then | ||
t = t .. "[[Kategorie:" .. fbdata.kategorie[1] .. " ohne Bild]]" | |||
else | |||
t = t .. "[[Kategorie:Ohne Bild]]" | |||
end | |||
elseif not wik.pageexists("Bild:" .. fbdata.pargs.Bild) then | elseif not wik.pageexists("Bild:" .. fbdata.pargs.Bild) then | ||
t = t .. "[[Kategorie:Bild nicht gefunden]]" | t = t .. "[[Kategorie:Bild nicht gefunden]]" | ||
| Zeile 234: | Zeile 320: | ||
t = t .. "[[Kategorie:Hat Slash]]" | t = t .. "[[Kategorie:Hat Slash]]" | ||
end | end | ||
if fbdata.strasse_hnr.suspekt then | if not com.isEmpty(fbdata.strasse_hnr) then | ||
if fbdata.strasse_hnr.suspekt then | |||
t = t .. "[[Kategorie:Gebäude mit verdächtiger Straße-Hausnummer-Kombination]]" | |||
end | |||
end | end | ||
if fbdata.positionscheck and (fbdata.pargs.lat or "") == "" and (fbdata.pargs.lon or "") == "" and | if fbdata.positionscheck and (fbdata.pargs.lat or "") == "" and (fbdata.pargs.lon or "") == "" and | ||
(fbdata.pargs.location or "") == "" and not wik.pageexists("GeoJson:" .. (fbdata.pargs.geojson or fbdata.pagename)) then | (fbdata.pargs.location or "") == "" and not wik.pageexists("GeoJson:" .. (fbdata.pargs.geojson or fbdata.pagename)) and | ||
fbdata.kategorie ~= nil then | |||
t = t .. "[[Kategorie:" .. fbdata.kategorie[1] .. ehemals_text .. " ohne Position]]" | t = t .. "[[Kategorie:" .. fbdata.kategorie[1] .. ehemals_text .. " ohne Position]]" | ||
end | end | ||