Modul:Faktenbox/Common: Unterschied zwischen den Versionen

Aus FürthWiki

+ Transclude-Schutz, + addWartungsmeldung_()
(+ Wartungsmeldung Schließungsdatum eingetragen, aber ohne Ehemals-Häkchen)
(+ Transclude-Schutz, + addWartungsmeldung_())
Zeile 13: Zeile 13:
-- =p.postprocess_{frame=mw.getCurrentFrame();attr={list={}};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.postprocess_{frame=mw.getCurrentFrame();attr={list={}};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
-- Transclude-Schutz (wurde als Unterseite inkludiert)
if fbdata.klasse ~= nil then
if not fbdata.transcluded then
smw.addAttrToList(fbdata.attr.list, "KlassenName", fbdata.klasse[1])
-- Klasse
end
if fbdata.klasse ~= nil then
-- Formular
smw.addAttrToList(fbdata.attr.list, "KlassenName", fbdata.klasse[1])
if fbdata.formular ~= nil then
end
fbdata.frame:callParserFunction("#default_form", fbdata.formular)
-- Formular
end
if fbdata.formular ~= nil then
-- Kategorien
fbdata.frame:callParserFunction("#default_form", fbdata.formular)
local ehemals_text = ""
end
if com.isTrue(fbdata.pargs["Ehemals"]) then
-- Kategorien
ehemals_text = " (ehemals)"
local ehemals_text = ""
end
if com.isTrue(fbdata.pargs["Ehemals"]) then
if fbdata.kategorie ~= nil then
ehemals_text = " (ehemals)"
for _, k in ipairs(fbdata.kategorie) do
end
t = t .. "[[Kategorie:" .. k .. ehemals_text .. "]]"
if fbdata.kategorie ~= nil then
for _, k in ipairs(fbdata.kategorie) do
t = t .. "[[Kategorie:" .. k .. ehemals_text .. "]]"
end
end
if com.isTrue(fbdata.pargs["DenkmalstatusBesteht"]) then
t = t .. "[[Kategorie:Denkmalliste]]"
end
local stadtteil = str.splitAndStrip(fbdata.pargs["Stadtteil"], ";")
for _, s in ipairs(stadtteil) do
s = str.strip(tostring(s))
t = t .. "[[Kategorie:" .. s .. "]]"
end
-- Wartungs-Kategorien/Meldungen
if com.isEmpty(fbdata.pargs) then
p.addWartungsmeldung_(fbdata, "Faktenbox ohne Formular-Daten")
end
if fbdata.pargs["Bild"] == nil then
p.addWartungsmeldung_(fbdata, "Faktenbox-Bild fehlt")
elseif not wik.pageExists("Bild:" .. fbdata.pargs["Bild"]) then
p.addWartungsmeldung_(fbdata, "Faktenbox-Bild existiert nicht")
end
if string.find(fbdata.pagename, ";") ~= nil then
p.addWartungsmeldung_(fbdata, "Seitenname (Lemma) hat Semikolon")
end
if string.find(fbdata.pagename, "/") ~= nil then
p.addWartungsmeldung_(fbdata, "Seitenname (Lemma) hat Schrägstrich")
end
if fbdata.strasse_hnr ~= nil then
if fbdata.strasse_hnr.suspekt then
p.addWartungsmeldung_(fbdata, "Gebäude mit verdächtiger Straße-Hausnummer-Kombination")
end
end
if fbdata.positionscheck and fbdata.kategorie ~= nil and fbdata.geoobjects == nil then
p.addWartungsmeldung_(fbdata, "Faktenbox-Karte (Position) fehlt")
end
end
end
if not com.isEmpty(fbdata.pargs["Schließungsdatum"]) and not com.isTrue(fbdata.pargs["Ehemals"]) then
if com.isTrue(fbdata.pargs["DenkmalstatusBesteht"]) then
p.addWartungsmeldung_(fbdata, "Schließungsdatum eingetragen, aber ohne Ehemals-Häkchen")
t = t .. "[[Kategorie:Denkmalliste]]"
end
local stadtteil = str.splitAndStrip(fbdata.pargs["Stadtteil"], ";")
for _, s in ipairs(stadtteil) do
s = str.strip(tostring(s))
t = t .. "[[Kategorie:" .. s .. "]]"
end
-- Wartungs-Kategorien/Meldungen
if com.isEmpty(fbdata.pargs) then
mw.smw.set{["Wartungsmeldung"]="Faktenbox ohne Formular-Daten"}
end
if fbdata.pargs["Bild"] == nil then
mw.smw.set{["Wartungsmeldung"]="Faktenbox-Bild fehlt"}
elseif not wik.pageExists("Bild:" .. fbdata.pargs["Bild"]) then
mw.smw.set{["Wartungsmeldung"]="Faktenbox-Bild existiert nicht"}
end
if string.find(fbdata.pagename, ";") ~= nil then
mw.smw.set{["Wartungsmeldung"]="Seitenname (Lemma) hat Semikolon"}
end
if string.find(fbdata.pagename, "/") ~= nil then
mw.smw.set{["Wartungsmeldung"]="Seitenname (Lemma) hat Schrägstrich"}
end
if fbdata.strasse_hnr ~= nil then
if fbdata.strasse_hnr.suspekt then
mw.smw.set{["Wartungsmeldung"]="Gebäude mit verdächtiger Straße-Hausnummer-Kombination"}
end
end
end
-- Attribute setzen
if fbdata.positionscheck and fbdata.kategorie ~= nil and fbdata.geoobjects == nil then
-- mw.logObject(fbdata.attr, "fbdata.attr")
mw.smw.set{["Wartungsmeldung"]="Faktenbox-Karte (Position) fehlt"}
if not fbdata.attr.noattr then
end
if not com.isEmpty(fbdata.pargs["Schließungsdatum"]) and not com.isTrue(fbdata.pargs["Ehemals"]) then
mw.smw.set{["Wartungsmeldung"]="Schließungsdatum eingetragen, aber ohne Ehemals-Häkchen"}
end
-- Attribute setzen
-- mw.logObject(fbdata.attr, "fbdata.attr")
if not fbdata.attr.noattr then
if fbdata.attr.subid ~= nil then
mw.smw.subobject(fbdata.attr.list, fbdata.attr.subid)
else
mw.smw.set(fbdata.attr.list)
mw.smw.set(fbdata.attr.list)
end
end
Zeile 90: Zeile 89:
fbdata.klasse = {}
fbdata.klasse = {}
fbdata.attr = {list = {}}
fbdata.attr = {list = {}}
-- check, ob es sich um eine transcludierte (inkludierte) Unterseite handelt
local hash = "FürthWiki"
for a, v in pairs (fbdata.pargs) do
hash = hash .. a .. v
end
hash = mw.hash.hashValue("md5", hash)
fbdata.attr.list["Hash"] = hash
local selector = "[[Seite::~" .. fbdata.fullpagename .. "/*]]" ..
"[[Hash::" .. hash .. "]]"
fbdata.transcluded = mw.smw.ask{selector, ["format"] = "count"} > 0
if fbdata.transcluded then -- in diesem Fall keine Attribute setzen
fbdata.attr.noattr = true
end
-- mw.logObject(fbdata)
-- mw.logObject(fbdata)
return fbdata
return fbdata
end
end


function p.subpagesPresent_(fbdata) -- Prüfung, ob Unterseiten mit gleicher Klasse
function p.addWartungsmeldung_(fbdata, wartungsmeldung)
return mw.smw.ask( -- vorhanden sind als Zeichen, dass
smw.addAttrToList(fbdata.attr.list, "Wartungsmeldung", wartungsmeldung)
"[[:+]][[Seite::~" .. fbdata.fullpagename .. "/*]]" .. -- diese wohl inkludiert wurden
"[[KlassenName::" .. fbdata.klasse[1] .. "]]|format=count") > 0
end
end


return p
return p