22.511
Bearbeitungen
("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") .. "]]") | ||
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> </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 | ||