Modul:Datei: Unterschied zwischen den Versionen

+ GalerieBilderAusblenden(), FormularZeigeNichtInStrasse(), FormularZeigeNichtInOrt(), - Attribut:...Formulareintrag
("Datei-Lizenz-Angabe fehlt")
(+ GalerieBilderAusblenden(), FormularZeigeNichtInStrasse(), FormularZeigeNichtInOrt(), - Attribut:...Formulareintrag)
Zeile 122: Zeile 122:
t = t .. p.zeile("[[Attribut:" .. a[1] .. "|" .. wob.attrText(a[1]) .. "]]", v,
t = t .. p.zeile("[[Attribut:" .. a[1] .. "|" .. wob.attrText(a[1]) .. "]]", v,
"ausgeblendet:", "[[" .. a[2] .. "::" .. (pargs[a[2]] or "Nein") .. "]]")
"ausgeblendet:", "[[" .. a[2] .. "::" .. (pargs[a[2]] or "Nein") .. "]]")
mw.smw.set{[a[2] .. "Formulareintrag"] = (pargs[a[2]] or "Nein")}
end
end
end
end
Zeile 384: Zeile 383:
lizenz = p.nocNcLicenseCorrection(lizenz)
lizenz = p.nocNcLicenseCorrection(lizenz)
return lizenz
return lizenz
end
function p.FormularZeigeNichtInStrasse()
return p.FormularZeigeNichtDatei("Straße")
end
function p.FormularZeigeNichtInOrt()
return p.FormularZeigeNichtDatei("Ort")
end
function p.FormularZeigeNichtDatei(zeige_nicht_in)
local t = ""
local spalten = 10 -- Datei-Spalten im Formular
local lemma = wik.subpagename()
local zeige_nicht_in_attr = "ZeigeNichtIn" .. zeige_nicht_in -- ZeigeNichtInOrt/ZeigeNichtInStraße/..
-- Datei-Selektor für SMD-Abfrage
local page_selector =
"[[Datei:+]]" ..
"[[" .. zeige_nicht_in .. "::" .. lemma .. "]]" .. -- Ort/Straße/.. = Lemma
"[[" .. zeige_nicht_in_attr .. "::!Ja]]" -- Formular-Eintrag von ZeigeNichtIn...
-- Anzahl ermitteln und Einleitung ausgeben
local query = {page_selector, format = "count"}
query = mw.smw.ask(query)
t = t .. "<br><big>Wählen Sie hier, welche der '''" .. query ..
"''' Bilder '''nicht''' angezeigt werden sollen:</big><br>"
-- Dateiliste abfragen
local query = {page_selector,
"?#-", "?Erstellungsdatum#-F[Y]",
sort = "Erstellungsdatum", order = "desc",
mainlabel = "-", limit = 10000}
query = mw.smw.ask(query)
-- Formular-Tabelle aufbauen
t = t ..
"{{{for template|Datei/" .. wob.mehrzahl(zeige_nicht_in) ..
"-Galerie-Bilder ausblenden}}}\n" ..
"<table class=\"formtable\">\n"
local jahrabschnitt
for i, d in ipairs(query) do
local datei = d[1]
local erstellungsjahr = d["Erstellungsdatum"] or "Ohne Erstellungsdatum" -- Erstellungsdatum enthält nur Jahr. Siehe oben Format -F[Y]
-- Jahres-Überschriften erstellen
if erstellungsjahr ~= jahrabschnitt then
jahrabschnitt = erstellungsjahr
t = t ..
"<tr>\n" ..
"  <th colspan=" .. (3 * spalten) ..
" style=\"text-align:center; background-color:#D6EEEE;\">" ..
"<big>" .. jahrabschnitt .. "</big>" ..
"  </th>\n" ..
"</tr>\n"
end
-- Datei-Spalten erstellen, jeweils checkbox und kleiner Datei-Ansicht
if (i - 1) % spalten == 0 then
t = t .. "<tr>\n"
end
t = t ..
"  <td>&nbsp;</td>" ..
"<td>{{{field|" .. datei .. "|input type=checkbox}}}</td>\n" ..
"  <td>[[" .. datei .. "|120x120px]]</td>\n"
if (i - 1) % spalten == (spalten - 1) then
t = t .. "</tr>\n"
end
end
t = t .. "</table>\n"
t = t .. "{{{end template}}}\n"
return t
end
function p.GalerieBilderAusblenden(frame)
local t = ""
local pages = wik.setPagenames()
local lemma = pages.subpagename
local zeige_nicht_in = frame.args[1] -- Straße, Ort oder ...
local zeige_nicht_in_attr = "ZeigeNichtIn" .. zeige_nicht_in
-- Info-Text
t = t ..
"'''Hier können Sie per Formular die Dateien auswählen, " ..
"die im Artikel [[" .. lemma ..
"]] nicht angezeigt werden sollen.'''\n<br>" ..
"'''Hinweis:''' " ..
"Nach dem Speichern müssen Sie nochmal bearbeiten und speichern!\n" ..
"__TOC__\n"
-- Formular setzen
t = t .. frame:callParserFunction(
"#default_form", "Datei/" .. zeige_nicht_in_attr)
-- Datei-Liste in SMD abfragen und als Tabelle aufbereiten
local query = {"[[Datei:+]][[" .. zeige_nicht_in .. "::" .. lemma .. "]]", -- Ort/Straße/.. = Lemma
"?#-", "?" .. zeige_nicht_in_attr, mainlabel = "-", limit = 10000}
query = mw.smw.ask(query) or {}
-- Datei-Tabelle umformen und dabei Galerie darstellen
t = t .. "== Nicht angezeigte Dateien (Formular-Eintrag auf jeweiliger Datei-Seite) ==\n"
local g, count = "", 0
dateien = {}
for i, d in ipairs(query) do
if com.isTrue(d[zeige_nicht_in_attr]) then
g = g .. d[1] .. "\n"
count = count + 1
else
dateien[d[1]] = true
end
dateien[i] = nil
end
t = t .. "'''" .. count .. " Dateien'''\n"
if count > 0 then
t = t .. "<gallery mode=\"nolines\">\n" .. g .. "</gallery>\n"
end
-- nicht anzuzeigende Dateien gemäß Formular auswerten und dabei Galerie darstellen
t = t .. "== Nicht angezeigte Dateien (Formular-Eintrag hier) ==\n"
g, count = "", 0
for d, z in pairs(frame:getParent().args) do
if com.isTrue(z) and dateien[d] then
dateien[d] = nil
g = g .. d .. "\n"
count = count + 1
end
end
t = t .. "'''" .. count .. " Dateien'''\n"
if count > 0 then
t = t .. "<gallery mode=\"nolines\">\n" .. g .. "</gallery>\n"
end
-- Attribute setzen
mw.smw.set{[zeige_nicht_in_attr] = "Ja", ["Seite"] = lemma}
-- Anzuzeigende Dateien als Subobjekte setzen und dabei Galerie darstellen
t = t .. "== Angezeigte Dateien ==\n"
g, count = "", 0
for d, z in pairs(dateien) do
if z then
mw.smw.subobject{["Seite"] = d}
g = g .. d .. "\n"
count = count + 1
end
end
t = t .. "'''" .. count .. " Dateien'''\n"
if count > 0 then
t = t .. "<gallery mode=\"nolines\">\n" .. g .. "</gallery>\n"
end
-- Wikitext Preprocess
return frame:preprocess(t)
end
end


return p
return p