Modul:Bild/Work: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
(33 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 6: Zeile 6:
local wik = require("Modul:Wiki")
local wik = require("Modul:Wiki")
local smw = require("Modul:SMW")
local smw = require("Modul:SMW")
local htm = require("Modul:HTML")
local kal = require("Modul:Kalender")
local kal = require("Modul:Kalender")


local n_bilder_limit = 200
local n_bilder_limit = 200
local abfrage = "Abfrage Bilder" -- Formular/Vorlage-Seitenname ggf. mit "/Work"
local abfrage = "Abfrage Bilder" -- Formular/Vorlage-Seitenname ggf. mit "/Work"
local galerie_bilder_ausblendung_basepagemame =
"FürthWiki:Galerie-Bilder-Ausblendung"


function p.Galerie(frame)
function p.Galerie(frame)
mw.log("Galerie(frame)")
-- mw.log("Galerie(frame)")
mw.logObject(frame.args, "frame.args")
-- mw.logObject(frame.args, "frame.args")
-- Kommando-Zeile zum Debuggen:
-- Kommando-Zeile zum Debuggen:
-- frame=mw.getCurrentFrame(); frame.args={["fullpagename"]="Wolfringstraße";["attr"]="Person;Straße",["val"]="Karl Rothammel;Erlanger Straße",["attr_zeige_nicht"]="ZeigeNichtInStraße;ZeigeNichtInOrt",["sort"]="Seite",["order"]="asc"}; print(p.Galerie(frame))
-- frame=mw.getCurrentFrame(); frame.args={["pagename"]="Wolfringstraße";["attr"]="Person;Straße",["val"]="Karl Rothammel;Erlanger Straße",["attr_zeige_nicht"]="ZeigeNichtInStraße;ZeigeNichtInOrt",["sort"]="Seite",["order"]="asc"}; print(p.Galerie(frame))
local t = ""
local t = ""
local pagename = frame.args["pagename"] or wik.pagename() -- args.pagename zum Debuggen
-- Argumente holen und ggf. default setzen
-- Argumente holen und ggf. default setzen
local args = wik.getArgs(frame.args, {"attr", "val", "attr_zeige_nicht", "sort", "order", "fullpagename"})
local args = wik.getArgs(frame.args, {"attr", "val", "attr_zeige_nicht", "sort", "order"})
args.sort = args.sort or "Seite.Erstellungsdatum, Seite"
args.sort = args.sort or "Erstellungsdatum, Seite"
args.order = args.order or "desc, asc"
args.order = args.order or "desc, asc"
args.attr = str.splitAndStrip(args.attr, ";")
args.attr = str.splitAndStrip(args.attr, ";")
args.val = str.splitAndStrip(args.val or "", ";")
args.val = str.splitAndStrip(args.val or "", ";")
for i = 1, #args.attr do -- default pagename setzen, wenn val nicht angegeben
args.val[i] = args.val[i] or pagename
end
args.attr_zeige_nicht = str.splitAndStrip(args.attr_zeige_nicht or "", ";")
args.attr_zeige_nicht = str.splitAndStrip(args.attr_zeige_nicht or "", ";")
local fullpagename = args.fullpagename or wik.fullpagename() -- args.fullpagename zum Debuggen
-- Galerie-Bilder-Ausblendung-Seite ermitteln
 
local galerie_bilder_ausblendung_pagemame =
-- "{{...-Galerie-Bilder ausblenden}}!"-Seiten einsammeln
galerie_bilder_ausblendung_basepagemame .. "/" .. pagename
local query = ""
if not wik.pageExists(galerie_bilder_ausblendung_pagemame) then
local zeige_nicht_fullpagename = {}
galerie_bilder_ausblendung_pagemame = nil
for _, a in ipairs(args.attr_zeige_nicht) do
query = "[[Seite::" .. fullpagename .. "]][[" .. a .. "::Ja]]"
query = {query, mainlabel = "-", "?#-"}
query = mw.smw.ask(query) or {{}}
mw.logObject(query, "query")
zeige_nicht_fullpagename[a] = query[1][1]
end
end
mw.logObject(zeige_nicht_fullpagename, "zeige_nicht_fullpagename")
-- Bilder-Seiten-Selektor zusammenbauen
-- Bilder-Seiten-Selektor zusammenbauen
local selector = ""
local selector = ""
for i, a in ipairs(args.attr_zeige_nicht) do
if galerie_bilder_ausblendung_pagemame ~= nil then
args.val[i] = args.val[i] or fullpagename
selector = selector .. "[[-has subobject::" ..
if selector ~= "" then
galerie_bilder_ausblendung_pagemame .. "]]"
selector = selector .. " OR "
else
end
for i, a in ipairs(args.attr) do
if zeige_nicht_fullpagename[a] ~= nil then
if selector ~= "" then
selector = selector ..
selector = selector .. " OR "
"[[-has subobject::" .. zeige_nicht_fullpagename[a] .. "]]"
end
else
selector = selector ..  
selector = selector ..  
"[[Datei:+]][[Kategorie:Bilder]]" ..
"[[Datei:+]][[Kategorie:Bilder]]" ..
"[[" .. args.attr[i] .. "::" .. args.val[i] .. "]]"
"[[" .. a .. "::" .. args.val[i] .. "]]"
a = args.attr_zeige_nicht[i]
if a ~= nil then
if a ~= nil then
selector = selector .. "[[" .. a .. "::!Ja]]"
selector = selector .. "[[" .. a .. "::!Ja]]"
Zeile 58: Zeile 56:
end
end
end
end
mw.logObject(selector, "selector")


-- Bilder-Anzahl
-- Bilder-Anzahl
local n_bilder = mw.smw.ask(selector .. "|format=count")
local n_bilder = mw.smw.ask(selector .. "|format=count")
mw.logObject(n_bilder, "n_bilder")
t = t .. "{{#set:Bilderanzahl=" .. n_bilder .. "}}"
t = t .. "{{#set:Bilderanzahl=" .. n_bilder .. "}}"
if n_bilder == 0 then
if n_bilder == 0 then
Zeile 94: Zeile 90:
"&" .. abfrage .. "[attr_op]=oder" ..
"&" .. abfrage .. "[attr_op]=oder" ..
"&_run}}"
"&_run}}"
-- Bilder ausblenden Link
if wik.pageExists(galerie_bilder_ausblendung_pagemame) then
t = t .. "<div style=\"float:right\"><small>" ..
"<nowiki>[</nowiki>[[" .. galerie_bilder_ausblendung_pagemame ..
"|Bilder ausblenden]]<nowiki>]</nowiki> " ..
"(" .. n_bilder .. " vorhanden)" ..
"</small></div>"
end


-- Bilder-Galerie und Abfrage-Links
-- Bilder-Galerie und Abfrage-Links
Zeile 116: Zeile 121:
"|?Seite" ..
"|?Seite" ..
"|?Seite.Dateiinfo" ..
"|?Seite.Dateiinfo" ..
"|?Seite.Erstellungsdatum" ..
"|sort=" .. args.sort ..
"|sort=" .. args.sort ..
"|order=" .. args.order ..
"|order=" .. args.order ..
Zeile 135: Zeile 139:
end -- if n_bilder == 0 then ... else ...
end -- if n_bilder == 0 then ... else ...


mw.logObject(t, "t")
-- mw.logObject(t, "t")
t = frame:preprocess(t)
t = frame:preprocess(t)
return t
return t
Zeile 241: Zeile 245:
end
end


-- t = "<nowiki>" .. t .. "</nowiki><br>" .. t
t = frame:preprocess(t)
t = frame:preprocess(t)
return t
end
function p.GalerieBilderAusblendungTabelle()
t = ""
-- Seiten mit übervollen Bilder-Galerien abfragen
local query = {"[[:+]][[Bilderanzahl::>" .. (n_bilder_limit + 1 ) .."]]",
"?#-", "?Bilderanzahl", "?KlassenName", "?Kategorie#-",
mainlabel = "-", sort = "Bilderanzahl", order = "desc", limit = 200}
uebervolle_seiten = mw.smw.ask(query) or {}
-- Unterseiten
query = {"[[Seite::~" .. galerie_bilder_ausblendung_basepagemame .. "/*]]",
"?#-", limit = 10000, mainlabel = "-"}
query = mw.smw.ask(query) or {}
for _, q in ipairs(query) do
q = string.sub(q[1], #galerie_bilder_ausblendung_basepagemame + 2)
local query2 = {"[[" .. q .."]]" ..
"[[Bilderanzahl::<" .. n_bilder_limit .."]]",
"?Bilderanzahl", "?KlassenName", "?Kategorie#-"}
query2 = mw.smw.ask(query2)
if query2 ~= nil then
table.insert(uebervolle_seiten, {q,
["Bilderanzahl"] = query2[1]["Bilderanzahl"],
["KlassenName"] = query2[1]["KlassenName"],
["Kategorie"] = query2[1]["Kategorie"]})
end
end
-- Tabelle zusammenbauen
if #uebervolle_seiten == 0 then
t = t .. "'''Es wurden keine Seiten gefunden'''\n"
else
t = t .. "'''" .. #uebervolle_seiten .. " Seiten gefunden'''\n"
local hidden_categories = wik.getHiddenCategories()
t = t .. htm.tableHeader{"Seite", "Bilderanzahl", "Klasse", "Kategorien", "Bilder ausblenden"}
for _, p in ipairs(uebervolle_seiten) do
local lemma = p[1]
local klassen = p["KlassenName"] or {}
if type(klassen) ~= "table" then
klassen = {klassen}
end
klassen = table.concat(klassen, ", ")
local kategorien = p["Kategorie"] or {}
if type(kategorien) ~= "table" then
kategorien = {kategorien}
end
local kategorien_tmp = {}
for _, k in ipairs(kategorien) do
if not hidden_categories[k] then
k = "[[:" .. k .. "|" .. string.sub(k, 11) .. "]]"
table.insert(kategorien_tmp, k)
end
end
kategorien = table.concat(kategorien_tmp, ", ")
local gba_link =
"[[" .. galerie_bilder_ausblendung_basepagemame .. "/" ..
lemma .. "|Hier]]"
t = t .. htm.tableLine{"[[" .. lemma .. "]]",
{p["Bilderanzahl"], td_args = "style=\"text-align: center;\""},
{klassen, td_args = "style=\"text-align: center;\""},
kategorien,
{gba_link, td_args = "style=\"text-align: center;\""}}
end
t = t .. htm.tableFooter()
end
return t
return t
end
end


return p
return p