Modul:Formular/Work: Unterschied zwischen den Versionen
Aus FürthWiki
Keine Bearbeitungszusammenfassung Markierung: Zurückgesetzt |
Keine Bearbeitungszusammenfassung |
||
| (8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 4: | Zeile 4: | ||
local str = require("Modul:String") | local str = require("Modul:String") | ||
local | local form_layouts = { | ||
["Adresse"] = { | |||
{"Adressart", "AdresseVon", "AdresseBis"}, | |||
{"Straße", "Hausnummer", "Kommentar"}} | |||
} | |||
local form_lists = { | |||
["Adresse"] = { | |||
"Adressart", "AdresseVon", "AdresseBis", "Straße", "Hausnummer", "Kommentar"} | |||
} | |||
function p.CommonForm(frame) | |||
-- Kommandozeile zum Debuggen: | |||
-- frame=mw.getCurrentFrame(); frame.args[1] = "Adresse"; print(p.CommonForm(frame)) | |||
local form = frame.args[1] | |||
local attr_data = {list = form_lists[form], attr = {}} | |||
-- Attribute der einzelnen Attribute hinzufügen | |||
for _, a in ipairs(attr_data.list) do | |||
attr_data.attr[a] = atr.getAttrAttributes(a, klasse) | |||
-- | |||
local | |||
for _, a in ipairs( | |||
end | end | ||
return p.attrForm(frame, attr_data) | |||
end | end | ||
| Zeile 93: | Zeile 30: | ||
-- frame=mw.getCurrentFrame(); print(p.attrForm(frame, {{["Attribut"]="At",["Einzahl"]="Ez",["Infotext"]="It",["FieldArgs"]="fa1|fa2|fa3"},{["Attribut"]="At_",["Einzahl"]="Ez_",["Infotext"]="It_",["FieldArgs"]="fa1_|fa2_|fa3_"}})) | -- frame=mw.getCurrentFrame(); print(p.attrForm(frame, {{["Attribut"]="At",["Einzahl"]="Ez",["Infotext"]="It",["FieldArgs"]="fa1|fa2|fa3"},{["Attribut"]="At_",["Einzahl"]="Ez_",["Infotext"]="It_",["FieldArgs"]="fa1_|fa2_|fa3_"}})) | ||
local t = "<table class=\"formtable\">\n" | local t = "<table class=\"formtable\">\n" | ||
for _, | for _, attr in ipairs(attr_data.list) do -- bislang nur Listen-Support, kein 2D via .form_layout | ||
local attr | local attr_attr = attr_data.attr[attr] -- Attribute des Attributs attr | ||
local attr_text = | local attr_text = attr_attr["Einzahl"] | ||
local delimiter = | local delimiter = attr_attr["Delimiter"] | ||
local info = | local info = attr_attr["Infotext"] or "" | ||
local field = | local field = attr_attr["FieldArgs"] or "" | ||
-- info zusammenbauen | -- info zusammenbauen | ||
if info ~= "" then | if info ~= "" then | ||
| Zeile 126: | Zeile 63: | ||
end | end | ||
function p. | function p.ArtikelCommon(args) | ||
local t = "" | local t = "" | ||
-- t = t .. "= Artikel =\n" | |||
t = t .. "{{{standard input|free text|rows=25|editor=wikieditor}}}" | t = t .. "{{{standard input|free text|rows=25|editor=wikieditor}}}" | ||
t = t .. "{{{standard input|summary}}}" | t = t .. "{{{standard input|summary}}}" | ||
| Zeile 136: | Zeile 73: | ||
t = t .. "__NOEDITSECTION__" | t = t .. "__NOEDITSECTION__" | ||
return t | return t | ||
end | end | ||
return p | return p | ||
Aktuelle Version vom 7. März 2026, 00:11 Uhr
local p = {}
local atr = require("Modul:Attribut")
local str = require("Modul:String")
local form_layouts = {
["Adresse"] = {
{"Adressart", "AdresseVon", "AdresseBis"},
{"Straße", "Hausnummer", "Kommentar"}}
}
local form_lists = {
["Adresse"] = {
"Adressart", "AdresseVon", "AdresseBis", "Straße", "Hausnummer", "Kommentar"}
}
function p.CommonForm(frame)
-- Kommandozeile zum Debuggen:
-- frame=mw.getCurrentFrame(); frame.args[1] = "Adresse"; print(p.CommonForm(frame))
local form = frame.args[1]
local attr_data = {list = form_lists[form], attr = {}}
-- Attribute der einzelnen Attribute hinzufügen
for _, a in ipairs(attr_data.list) do
attr_data.attr[a] = atr.getAttrAttributes(a, klasse)
end
return p.attrForm(frame, attr_data)
end
function p.attrForm(frame, attr_data)
-- Kommandozeile zum Debuggen:
-- frame=mw.getCurrentFrame(); print(p.attrForm(frame, {{["Attribut"]="At",["Einzahl"]="Ez",["Infotext"]="It",["FieldArgs"]="fa1|fa2|fa3"},{["Attribut"]="At_",["Einzahl"]="Ez_",["Infotext"]="It_",["FieldArgs"]="fa1_|fa2_|fa3_"}}))
local t = "<table class=\"formtable\">\n"
for _, attr in ipairs(attr_data.list) do -- bislang nur Listen-Support, kein 2D via .form_layout
local attr_attr = attr_data.attr[attr] -- Attribute des Attributs attr
local attr_text = attr_attr["Einzahl"]
local delimiter = attr_attr["Delimiter"]
local info = attr_attr["Infotext"] or ""
local field = attr_attr["FieldArgs"] or ""
-- info zusammenbauen
if info ~= "" then
info = info .. "."
if delimiter ~= nil and
string.find(field, "tokens") == nil then
info = info .. " Mehrere Eintragungen möglich, zu trennen per " ..
delimiter
end
info = string.gsub(info, "%.%.", ".")
info = frame:callParserFunction("#info", info, "note")
end
-- field zusammenbauen
if field ~= "" then
field = "|" .. field
end
field = str.appendWithSeparator("{{{field|" .. attr, "|", field) .. "}}}"
t = t ..
"<tr>\n" ..
" <th style=\"vertical-align:middle;\">" .. attr_text .. ":</th>\n" ..
" <td style=\"vertical-align:middle;\">" .. info .. "</td>\n" ..
" <td style=\"vertical-align:middle;\">" .. field .. "</td>\n" ..
"</tr>\n"
end
t = t .. "</table>\n"
return t
end
function p.ArtikelCommon(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