15.075
Bearbeitungen
((automatisch erstellt) nicht fett) |
(fix Freiattribute) |
||
| Zeile 14: | Zeile 14: | ||
-- =p.Dateibox{pargs={["fullpagename"]="Datei:test.jpg",["Genre"]="g1;g2",["Attribut1"]="a1",["Wert1"]="w1;w2"}} | -- =p.Dateibox{pargs={["fullpagename"]="Datei:test.jpg",["Genre"]="g1;g2",["Attribut1"]="a1",["Wert1"]="w1;w2"}} | ||
-- =p.Dateibox{pargs={["fullpagename"]="Datei:test.jpg",["Beschreibung"]="Int. Tag gegen Gewalt an Frauen: Aktive vom ''Unabhängige Frauen Fürth e. V.'' an einem Infostand, Nov. 2019"}} | -- =p.Dateibox{pargs={["fullpagename"]="Datei:test.jpg",["Beschreibung"]="Int. Tag gegen Gewalt an Frauen: Aktive vom ''Unabhängige Frauen Fürth e. V.'' an einem Infostand, Nov. 2019"}} | ||
-- =p.Dateibox{pargs={["fullpagename"]="Datei:test.jpg",["Attribut1"]="Gebäude",["Wert1"]="Wolfringstraße 1",["Attribut2"]="Gebäude",["Wert2"]="Königstraße 86"}} | |||
local frame, pargs = dev.GetFrameAndParentArgs(frame) | local frame, pargs = dev.GetFrameAndParentArgs(frame) | ||
local title = pargs["fullpagename"] or wik.fullpagename() -- pargs["fullpagename"] zum Testen/Debuggen | local title = pargs["fullpagename"] or wik.fullpagename() -- pargs["fullpagename"] zum Testen/Debuggen | ||
| Zeile 33: | Zeile 34: | ||
-- Freiattribute | -- Freiattribute | ||
local aw = {} | |||
local aw_fail = false | |||
for i = 1, 6 do | for i = 1, 6 do | ||
local a = pargs["Attribut" .. i] or "" | local a = pargs["Attribut" .. i] or "" | ||
local w = pargs["Wert" .. i] or "" | local w = pargs["Wert" .. i] or "" | ||
if a ~= "" then | if a ~= "" and w ~= "" then | ||
aw[a] = (aw[a] or "") .. w .. ";" -- Werte zusammenführen | |||
elseif a ~= "" or w ~= "" then | |||
aw_fail = true | |||
end | |||
end | |||
if aw_fail then | |||
t = t .. "[[Kategorie:Freiattribut-Fehler]]" | |||
end | |||
for a, w in pairs(aw) do | |||
if a == "Gebäude" then -- zusätzlich Gebäude nach StraßeHnr suchen und hinzufügen | |||
local gebaeude_wert = {} | |||
for _, e in ipairs(str.splitAndStrip(w, ";")) do -- direkt über Wertx angegebene Gebäude | |||
gebaeude_wert[e] = true | |||
end | |||
local gebaeude_query = {} | |||
for g, _ in pairs(gebaeude_wert) do -- über query ermittelte Gebäude | |||
local q = "[[:+]][[Kategorie:Gebäude]][[StraßeHnr::" .. g .. "]]|?#-" | |||
q = mw.smw.ask(q) or {} | |||
for _, qg in ipairs(q) do | |||
qg = qg[1] | |||
if gebaeude_wert[qg] ~= true then -- nur, wenn nicht schon direkt angegeben (auch nil!) | |||
gebaeude_query[qg] = true | |||
end | end | ||
end | end | ||
end | end | ||
v = "" -- jetzt den Anzeigetext zusammenbauen | |||
for g, _ in pairs(gebaeude_wert) do -- erst die direkt angegebenen Gebäude | |||
if v ~= "" then | |||
v = v .. ", " | |||
end | |||
v = v .. "[[" .. a .. "::" .. g .. "]]" | |||
end | |||
local v_query = "" -- dann die via query ermittelten Gebäude | |||
for g, _ in pairs(gebaeude_query) do | |||
if v_query ~= "" then | |||
v_query = v_query .. ", " | |||
end | |||
v_query = v_query .. "[[" .. a .. "::" .. g .. "]]" | |||
end | |||
if v_query ~= "" then | |||
v = v .. "<br>automatisch ermittelt über Straße/Hausnummer: " .. v_query | |||
end | |||
else | |||
v = p.attrValList(a, {[a] = w}) | |||
end | end | ||
t = t .. p.attrZeile(a, v) | |||
end | end | ||
| Zeile 136: | Zeile 168: | ||
end | end | ||
if dateiinfo ~= "" then | if dateiinfo ~= "" then | ||
t = t .. p.zeile("[[Attribut:Dateiinfo|Dateiinfo]] '''(automatisch erstellt)''' ", "[[Dateiinfo::" .. dateiinfo .. "]]") | t = t .. p.zeile("[[Attribut:Dateiinfo|Dateiinfo]] '''<br>(automatisch erstellt)''' ", "[[Dateiinfo::" .. dateiinfo .. "]]") | ||
end | end | ||