Modul:Formular/Work: Unterschied zwischen den Versionen
Aus FürthWiki
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| (31 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
local p = {} | local p = {} | ||
local wob = require("Modul:Wörterbuch") | |||
local field_default_args = { -- hier kann z.B. size global hinzugefügt werden | |||
checkbox = "input type=checkbox", | |||
date = "input type=date", | |||
file = "uploadable", | |||
hausnummer = "input type=text|size=5", | |||
text = "input type=text", | |||
text_autocomplete = "input type=text with autocomplete"} | |||
local attr_field_args = { | |||
-- diese Tabelle enthält die {{{field|attr|...}}}-Argumente (Attribut wird automatisch eingefügt) | |||
["Adressart"] = "input type=combobox|property=Adressart|size=30", | |||
["AdresseBis"] = field_default_args.date, | |||
["AdresseVon"] = field_default_args.date, | |||
["Bild"] = field_default_args.file, | |||
["Ehemals"] = field_default_args.checkbox, | |||
["Email"] = field_default_args.text, | |||
["Gründungsdatum"] = field_default_args.date, | |||
["Gründungsort"] = field_default_args.text, | |||
["Hausnummer"] = field_default_args.hausnummer, | |||
["Kommentar"] = field_default_args.text, | |||
["Schließungsdatum"] = field_default_args.date, | |||
["Schließungsgrund"] = field_default_args.text, | |||
["Straße"] = field_default_args.text_autocomplete, | |||
["Telefon"] = field_default_args.text, | |||
["Webseite"] = field_default_args.text} | |||
local attr_infos = { | |||
-- diese Tabelle enthält die {{info:...|note}}-Texte, ggf. abhängig von der Klasse | |||
["Bild"] = "Name der Bilddatei im Format <code>Max Mustermann.jpg</code>", | |||
["Ehemals"] = {"Haken setzen, wenn Objekt heute nicht mehr besteht", -- default | |||
["Einrichtung"] = "Haken setzen, wenn Einrichtung geschlossen"}, | |||
["Schließungsgrund"] = { -- "???" | |||
["Einrichtung"] = "Warum hat diese Einrichtung aufgegeben?"}, -- default | |||
["Straße"] = { | |||
["Adresse"] = "Nur eintragen, wenn in Fürth!"}} | |||
function p.FormularAdresse(frame) | |||
local t = "" | |||
t = t .. "= Adressen =\n" | |||
t = t .. "{{{for template|Adresse|multiple|add button text=Adresse hinzufügen}}}\n" | |||
t = t .. p.attr_table{ | |||
frame = frame, | |||
klasse = "Adresse", -- Adresse ist eigentlich keine echte Klasse | |||
attr_list = { | |||
"Adressart", "AdresseVon", "AdresseBis", | |||
"Straße", "Hausnummer", | |||
"Kommentar"}, | |||
format = "horizontal"} | |||
t = t .. "{{{end template}}}\n" | |||
return t | |||
end | |||
function p.attr_table(args) | |||
local t = "<table class=\"formtable\">\n" | |||
local l1, l2 = "", "" | |||
for _, a in ipairs(args.attr_list) do | |||
local attr_text = wob.attrText(a, args.klasse) | |||
local info = attr_infos[a] or "" -- Info-Text | |||
if type(info) == "table" then | |||
info = info[args.klasse] or info[1] or "" | |||
end | |||
if info ~= "" then | |||
info = args.frame:callParserFunction("#info", info, "note") | |||
end | |||
local field = | |||
"{{{field|" .. a .. "|" .. attr_field_args[a] .. "}}}" | |||
if args.format == "vertical" then | |||
t = t .. | |||
"<tr>\n" .. | |||
" <th>" .. attr_text .. ":</th>\n" .. | |||
" <td>" .. info .. "</td>\n" .. | |||
" <td>" .. field .. "</td>\n" .. | |||
"</tr>\n" | |||
elseif args.format == "horizontal" then | |||
l1 = l1 .. " <th>" .. attr_text .. ": " .. info .. "</th>\n" | |||
l2 = l2 .. " <td>" .. field .. "</td>\n" | |||
end | |||
end | |||
if args.format == "horizontal" then | |||
t = t .. "<tr>\n" .. l1 .. "</tr>\n" .. "<tr>\n" .. l2 .. "</tr>\n" | |||
end | |||
t = t .. "</table>\n" | |||
return t | |||
end | |||
function p.common(args) | function p.common(args) | ||
Aktuelle Version vom 29. Januar 2026, 14:59 Uhr
local p = {}
local wob = require("Modul:Wörterbuch")
local field_default_args = { -- hier kann z.B. size global hinzugefügt werden
checkbox = "input type=checkbox",
date = "input type=date",
file = "uploadable",
hausnummer = "input type=text|size=5",
text = "input type=text",
text_autocomplete = "input type=text with autocomplete"}
local attr_field_args = {
-- diese Tabelle enthält die {{{field|attr|...}}}-Argumente (Attribut wird automatisch eingefügt)
["Adressart"] = "input type=combobox|property=Adressart|size=30",
["AdresseBis"] = field_default_args.date,
["AdresseVon"] = field_default_args.date,
["Bild"] = field_default_args.file,
["Ehemals"] = field_default_args.checkbox,
["Email"] = field_default_args.text,
["Gründungsdatum"] = field_default_args.date,
["Gründungsort"] = field_default_args.text,
["Hausnummer"] = field_default_args.hausnummer,
["Kommentar"] = field_default_args.text,
["Schließungsdatum"] = field_default_args.date,
["Schließungsgrund"] = field_default_args.text,
["Straße"] = field_default_args.text_autocomplete,
["Telefon"] = field_default_args.text,
["Webseite"] = field_default_args.text}
local attr_infos = {
-- diese Tabelle enthält die {{info:...|note}}-Texte, ggf. abhängig von der Klasse
["Bild"] = "Name der Bilddatei im Format <code>Max Mustermann.jpg</code>",
["Ehemals"] = {"Haken setzen, wenn Objekt heute nicht mehr besteht", -- default
["Einrichtung"] = "Haken setzen, wenn Einrichtung geschlossen"},
["Schließungsgrund"] = { -- "???"
["Einrichtung"] = "Warum hat diese Einrichtung aufgegeben?"}, -- default
["Straße"] = {
["Adresse"] = "Nur eintragen, wenn in Fürth!"}}
function p.FormularAdresse(frame)
local t = ""
t = t .. "= Adressen =\n"
t = t .. "{{{for template|Adresse|multiple|add button text=Adresse hinzufügen}}}\n"
t = t .. p.attr_table{
frame = frame,
klasse = "Adresse", -- Adresse ist eigentlich keine echte Klasse
attr_list = {
"Adressart", "AdresseVon", "AdresseBis",
"Straße", "Hausnummer",
"Kommentar"},
format = "horizontal"}
t = t .. "{{{end template}}}\n"
return t
end
function p.attr_table(args)
local t = "<table class=\"formtable\">\n"
local l1, l2 = "", ""
for _, a in ipairs(args.attr_list) do
local attr_text = wob.attrText(a, args.klasse)
local info = attr_infos[a] or "" -- Info-Text
if type(info) == "table" then
info = info[args.klasse] or info[1] or ""
end
if info ~= "" then
info = args.frame:callParserFunction("#info", info, "note")
end
local field =
"{{{field|" .. a .. "|" .. attr_field_args[a] .. "}}}"
if args.format == "vertical" then
t = t ..
"<tr>\n" ..
" <th>" .. attr_text .. ":</th>\n" ..
" <td>" .. info .. "</td>\n" ..
" <td>" .. field .. "</td>\n" ..
"</tr>\n"
elseif args.format == "horizontal" then
l1 = l1 .. " <th>" .. attr_text .. ": " .. info .. "</th>\n"
l2 = l2 .. " <td>" .. field .. "</td>\n"
end
end
if args.format == "horizontal" then
t = t .. "<tr>\n" .. l1 .. "</tr>\n" .. "<tr>\n" .. l2 .. "</tr>\n"
end
t = t .. "</table>\n"
return t
end
function p.common(args)
local t = ""
t = t .. "= Artikel =\n"
t = t .. "{{{standard input|free text|rows=25|editor=wikieditor}}}"
t = t .. "{{{standard input|summary}}}"
t = t .. "{{{standard input|minor edit}}} {{{standard input|watch}}}<br>"
t = t .. "{{{standard input|save}}} {{{standard input|changes}}} {{{standard input|cancel}}}"
t = t .. "__NOTOC__"
t = t .. "__NOEDITSECTION__"
return t
end
return p