15.976
Bearbeitungen
(Geo anstelle Geocode) |
(rework fbdata) |
||
| Zeile 1: | Zeile 1: | ||
p = {} | p = {} | ||
local com = require("Modul:Common") | local com = require("Modul:Common") | ||
local dev = require("Modul:Development") | |||
local str = require("Modul:String") | local str = require("Modul:String") | ||
local wik = require("Modul:Wiki") | local wik = require("Modul:Wiki") | ||
| Zeile 30: | Zeile 31: | ||
end | end | ||
function p.zeileKategorieSeite( | function p.zeilePargs(fbdata, attr_names) | ||
-- mw.log("zeileKategorieSeite(" .. | -- 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.zeileKategorieSeite(fbdata, kindex) | |||
-- mw.log("zeileKategorieSeite(fbdata, " .. (kindex or 1) .. ")") | |||
-- mw.logObject(fbdata) | |||
-- Konsolenzeile zum Debuggen: | |||
-- =p.zeileKategorieSeite({fullpagename="fpn",kategorie={"kat1","kat2"},klasse={"kla1","kla2"}}, 2) | |||
local t = "" | local t = "" | ||
t = t .. "<dt>[[:Kategorie:" .. fbdata.kategorie[kindex or 1] .. "|" .. fbdata.klasse[kindex or 1] .. "]]</dt><dd>[[Seite::" .. fbdata.fullpagename .. "]]</dd>" | |||
t = t .. "<dt>[[:Kategorie:" .. kategorie .. "|" .. klasse .. "]]</dt><dd>[[Seite::" .. fullpagename .. "]]</dd>" | |||
-- mw.log("t = " .. t) | -- mw.log("t = " .. t) | ||
return t | return t | ||
end | end | ||
function p.zeileStrasseHnr( | function p.zeileStrasseHnr(fbdata) | ||
-- mw.log("zeileStrasseHnr( | -- mw.log("zeileStrasseHnr(fbdata)") | ||
-- mw.logObject(strasse_hnr) | -- mw.logObject(fbdata.strasse_hnr) | ||
-- Konsolenzeile zum Debuggen: | -- Konsolenzeile zum Debuggen: | ||
-- =p.zeileStrasseHnr | -- =p.zeileStrasseHnr{strasse_hnr={strasse={{name="Erlanger Straße",hausnummer={"11", "13"}},{name="XY Straße",hausnummer={}}},anzahlGebaeude=3}} | ||
local t = "" | local t = "" | ||
for is, sh in ipairs(strasse_hnr.strasse) do -- Straßen/Hausnummer-Kombis durchiterieren | for is, sh in ipairs(fbdata.strasse_hnr.strasse) do -- Straßen/Hausnummer-Kombis durchiterieren | ||
t = t .. "<dt>" | t = t .. "<dt>" | ||
if is > 1 then | if is > 1 then | ||
t = t .. is .. ". " -- Numerierungsanzeige "2., "3." usw. | t = t .. is .. ". " -- Numerierungsanzeige "2., "3." usw. | ||
else | else | ||
is = "" -- | is = "" -- keine 1, aber 2, 3, ... für weitere Verwendung | ||
end | end | ||
t = t .. "[[Attribut:Straße|Straße]]" | t = t .. "[[Attribut:Straße" .. is .. "|Straße]]" | ||
if #sh.hausnummer > 0 then | if #sh.hausnummer > 0 then | ||
t = t .. " / " .. "[[Attribut:Hausnummer|Hausnummer]]" -- nur wenn Hausnummern vorhanden | t = t .. " / " .. "[[Attribut:Hausnummer" .. is .. "|Hausnummer]]" -- nur wenn Hausnummern vorhanden | ||
end | end | ||
t = t .. "</dt><dd>[[Straße" .. is .. "::" .. sh.name .. "]]" | t = t .. "</dt><dd>[[Straße" .. is .. "::" .. sh.name .. "]]" | ||
| Zeile 67: | Zeile 89: | ||
t = t .. " " .. h | t = t .. " " .. h | ||
end | end | ||
t = t .. "{{#set:Hausnummer" .. is .. "=" .. h .. "|StraßeHnr=" .. strasse_hnr_ .. "}}" | |||
end | end | ||
t = t .. "</dd>" | t = t .. "</dd>" | ||
end | end | ||
t = t .. "{{#set:AnzahlGebäude=" .. fbdata.strasse_hnr.anzahlGebaeude .. "}}" | |||
-- mw.log("t = " .. t) | -- mw.log("t = " .. t) | ||
return t | return t | ||
end | end | ||
function p. | function p.zeileAktenNr(fbdata) | ||
-- mw.log(" | -- mw.log("zeileAktenNr(fbdata)") | ||
-- Konsolenzeile zum Debuggen: =p. | -- mw.logObject(fbdata.pargs) | ||
-- Konsolenzeile zum Debuggen: | |||
-- =p.zeileAktenNr{pargs={AktenNr="D-5-63-000-1464"}} | |||
local t = "" | local t = "" | ||
local aktennr = str.splitAndStrip(fbdata.pargs.AktenNr or "", ";") | |||
if #aktennr > 0 then | |||
t = t .. "<dt>" .. "[[Attribut:AktenNr|Akten-Nr.]]</dt><dd>" | |||
for i, a in ipairs(aktennr) do | |||
if i > 1 then | |||
t = t .. ",<br>" | |||
end | end | ||
t = t .. " | t = t .. "{{#queryformlink:form=Abfrage Denkmalschutz|link text=[[AktenNr::" .. a .. "]]|query string=Abfrage Denkmalschutz[AktenNr]=" .. a .. "&_run}}" | ||
local p = que.getPages("[[:+]][[AktenNr::" .. a .. "]]", true) | |||
t = t .. " (" .. #p .. ")" -- Anzahl der Artikel mit dieser Akten-Nr. in Klammern | |||
end | end | ||
t = t .. "</dd>" | |||
end | end | ||
-- mw.log("t=" .. t) | -- mw.log("t=" .. t) | ||
| Zeile 100: | Zeile 121: | ||
end | end | ||
function p.zeileGeokoordinate( | function p.zeileGeokoordinate(fbdata) | ||
-- mw.log("zeileGeokoordinate()") | -- mw.log("zeileGeokoordinate()") | ||
-- mw.logObject(fbdata) | |||
-- Konsolenzeile zum Debuggen: | |||
-- fbdata=p.fbdata{pargs={}}; fbdata.fullpagename="Isaak-Loewi-Straße 1, 3, 5, 7, 9, Liesl-Kießling-Straße 16"; print(p.zeileGeokoordinate(fbdata)) | |||
local t = "" | local t = "" | ||
local geokoordinate = que.getValues(fbdata.fullpagename, "Geokoordinate", true) | |||
local geokoordinate = que.getValues(fullpagename, "Geokoordinate", true) | |||
if #geokoordinate > 0 then | if #geokoordinate > 0 then | ||
t = t .. "<dt>[[Attribut:Geokoordinate|Geokoordinate]]</dt><dd>" | t = t .. "<dt>[[Attribut:Geokoordinate|Geokoordinate]]</dt><dd>" | ||
| Zeile 111: | Zeile 134: | ||
t = t .. ",<br>" | t = t .. ",<br>" | ||
end | end | ||
t = t .. geo.osmLink(fbdata.frame, g) | |||
end | end | ||
t = t .. "</dd>" | t = t .. "</dd>" | ||
| Zeile 127: | Zeile 146: | ||
-- mw.logObject(args) | -- mw.logObject(args) | ||
-- Konsolenzeile zum Debuggen: | -- Konsolenzeile zum Debuggen: | ||
-- =p.zeileDatum | -- =p.zeileDatum{attr_date="Weihedatum",date="1959/11/15",attr_day="Weihetag",attr_year="Weihejahr"} | ||
local t = "" | local t = "" | ||
local date = str.strip(args.date or "") | local date = str.strip(args.date or "") | ||
| Zeile 139: | Zeile 158: | ||
end | end | ||
function p.faktenboxSemantikBrowsen() | function p.faktenboxSemantikBrowsen(fbdata) | ||
-- mw.log("faktenboxSemantikBrowsen()") | -- mw.log("faktenboxSemantikBrowsen(fbdata)") | ||
-- mw.logObject(fbdata) | |||
-- Konsolenzeile zum Debuggen: | |||
-- =p.faktenboxSemantikBrowsen{pargs={Bild="Erloeserkirche.jpg"}} | |||
local t = "" | local t = "" | ||
t = t .. "<dl class = 'dataTable'>" | t = t .. "<dl class = 'dataTable'>" | ||
t = t .. "<dt>[[Bild:IconSearch.svg|16px|semantisches Browsen|link=[[Spezial:Durchsuchen/ | t = t .. "<dt>[[Bild:IconSearch.svg|16px|semantisches Browsen|link=[[Spezial:Durchsuchen/" .. fbdata.fullpagename .. "]]]]</dt>" | ||
t = t .. "<dd>[[Spezial:Durchsuchen/ | t = t .. "<dd>[[Spezial:Durchsuchen/" .. fbdata.fullpagename .. "|Semantisches Browsen]]</dd>" | ||
t = t .. "</dl>" | t = t .. "</dl>" | ||
-- mw.log("t = " .. t) | -- mw.log("t = " .. t) | ||
| Zeile 150: | Zeile 172: | ||
end | end | ||
function p.bildTab( | function p.bildTab(fbdata, seite) | ||
-- mw.log("bild(" .. ( | -- mw.log("bild(fbdata, " .. (seite or "nil") .. ")") | ||
-- mw.logObject(fbdata.pargs) | |||
-- Konsolenzeile zum Debuggen: | |||
-- =p.bildTab{pargs={Bild="Erloeserkirche.jpg"}} | |||
local t = "" | local t = "" | ||
local beschreibung = que.getValues("Datei:" .. ( | local beschreibung = que.getValues("Datei:" .. (fbdata.pargs.Bild or ""), "Beschreibung") | ||
local beschreibung = beschreibung[1] or "" | local beschreibung = beschreibung[1] or "" | ||
if not com.isEmpty( | 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 .. '{| class = "factbox_imagetable" border = "0" cellpadding = "0" cellspacing = "0" width = "100%"\n' | ||
t = t .. '|-\n' | t = t .. '|-\n' | ||
t = t .. '|[[Bild::Datei:' .. | t = t .. '|[[Bild::Datei:' .. fbdata.pargs.Bild .. '|768px|link=' .. (seite or '') .. ']]\n' | ||
if beschreibung ~= "" then | if beschreibung ~= "" then | ||
t = t .. '|-\n' | t = t .. '|-\n' | ||
| Zeile 171: | Zeile 196: | ||
end | end | ||
function p.common( | function p.common(fbdata, positionscheck) | ||
mw.log("common(fbdata)") | |||
mw.logObject(fbdata) | |||
-- Konsolenzeile zum Debuggen: | -- Konsolenzeile zum Debuggen: | ||
-- =p.common{formular="Gebäude/Work", | -- =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 | |||
t = t .. "{{#set:KlassenName=" .. fbdata.klasse[1] .. "}}" | |||
-- Formular | -- Formular | ||
t = t .. "{{#default_form:" .. | t = t .. "{{#default_form:" .. fbdata.formular .. "}}" | ||
-- Kategorien | -- Kategorien | ||
if com.isTrue( | local ehemals_text = "" | ||
if com.isTrue(fbdata.pargs.Ehemals) then | |||
ehemals_text = " (ehemals)" | |||
end | end | ||
for _, k in ipairs(fbdata.kategorie) do | |||
t = t .. "[[Kategorie:" .. k .. ehemals_text .. "]]" | |||
end | end | ||
if com.isTrue( | if com.isTrue(fbdata.pargs.DenkmalstatusBesteht) then | ||
t = t .. "[[Kategorie:Denkmalliste]]" | t = t .. "[[Kategorie:Denkmalliste]]" | ||
end | end | ||
local stadtteil = str.splitAndStrip( | local stadtteil = str.splitAndStrip(fbdata.pargs.Stadtteil or "", ";") | ||
for _, s in ipairs(stadtteil) do | for _, s in ipairs(stadtteil) do | ||
s = str.strip(tostring(s or "")) | s = str.strip(tostring(s or "")) | ||
t = t .. "[[Kategorie:" .. s .. "]]" | t = t .. "[[Kategorie:" .. s .. "]]" | ||
end | end | ||
-- Wartungs-Kategorien | -- Wartungs-Kategorien | ||
if com.isEmpty( | if com.isEmpty(fbdata.pargs.Bild) then | ||
t = t .. "[[Kategorie:" .. | t = t .. "[[Kategorie:" .. fbdata.kategorie[1] .. " ohne Bild]]" | ||
elseif not wik.pageexists("Bild:" .. | elseif not wik.pageexists("Bild:" .. fbdata.pargs.Bild) then | ||
t = t .. "[[Kategorie:Bild nicht gefunden]]" | t = t .. "[[Kategorie:Bild nicht gefunden]]" | ||
end | end | ||
if string.find(fbdata.pagename, ";") ~= nil then | |||
if string.find(pagename, ";") ~= nil then | |||
t = t .. "[[Kategorie:Hat Semikolon]]" | t = t .. "[[Kategorie:Hat Semikolon]]" | ||
end | end | ||
if string.find(pagename, "/") ~= nil then | if string.find(fbdata.pagename, "/") ~= nil then | ||
t = t .. "[[Kategorie:Hat Slash]]" | t = t .. "[[Kategorie:Hat Slash]]" | ||
end | end | ||
if | if fbdata.strasse_hnr.suspekt then | ||
t = t .. "[[Kategorie:Gebäude mit verdächtiger Straße-Hausnummer-Kombination]]" | t = t .. "[[Kategorie:Gebäude mit verdächtiger Straße-Hausnummer-Kombination]]" | ||
end | end | ||
if positionscheck 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 | |||
t = t .. "[[Kategorie:" .. fbdata.kategorie[1] .. ehemals_text .. " ohne Position]]" | |||
end | end | ||
-- mw.log("t = " .. t) | -- mw.log("t = " .. t) | ||
| Zeile 233: | Zeile 248: | ||
-- mw.log("tab(t)") | -- mw.log("tab(t)") | ||
-- mw.logObject(t) | -- mw.logObject(t) | ||
t = str.strip(t) | |||
if t ~= "" then | if t ~= "" then | ||
t = "<tab name = ".. name .. ">" .. t .. "</tab>" | t = "<tab name = ".. name .. ">" .. t .. "</tab>" | ||
| Zeile 238: | Zeile 254: | ||
-- mw.log("t = " .. t) | -- mw.log("t = " .. t) | ||
return t | return t | ||
end | |||
function p.fbdata(frame) | |||
-- mw.log("fbdata(frame)") | |||
-- mw.logObject(frame) | |||
-- Konsolenzeile zum Debuggen: | |||
-- =p.fbdata{pargs={a=1}} | |||
local fbdata = {} | |||
fbdata.frame, fbdata.pargs = dev.GetFrameAndParentArgs(frame) | |||
wik.setPagenames(fbdata) | |||
-- mw.logObject(fbdata) | |||
return fbdata | |||
end | end | ||
return p | return p | ||