24.921
Bearbeitungen
(ask() + Rückformen ["?..."]="..." zu "?...=...") |
(Ausgliederung restoreQueryEqual()) |
||
| Zeile 142: | Zeile 142: | ||
function p.Ask(frame) | function p.Ask(frame) | ||
-- Kommandozeile zum Debuggen: | -- Kommandozeile zum Debuggen: | ||
-- p.Ask{pargs={" a "," ? b "," ? c1 # c2 "," ? d1 # d2 = d3 "," ? e1 = e3 ", " ? Ehemals ", " ? Ehemals = Test ", " ? Ehemals # tick ", " ? Ehemals # tick = Test", " ? Ehemals # tick =", Klasse="Straße"}} | -- p.Ask{pargs={" a "," ? b "," ? c1 # c2 "," ? d1 # d2 = d3 "," ? e1 = e3 "," ? f = "," ? g # = ", " ? Ehemals ", " ? Ehemals = Test ", [" ? Ehemals2 "]=" Test2 ", " ? Ehemals # tick ", " ? Ehemals # tick = Test", [" ? Ehemals3 # tick3 "]=" Test3 ", " ? Ehemals # tick =", Klasse="Straße"}} | ||
local frame, pargs = dev.GetFrameAndParentArgs(frame) | local frame, pargs = dev.GetFrameAndParentArgs(frame) | ||
return p.ask(frame, pargs) | |||
return p.ask(frame, | |||
end | end | ||
function p.ask(frame, args) | function p.ask(frame, args) | ||
local t = "" | local t = "" | ||
local args = com.shallowcopy(args) | |||
-- defaults setzen | -- defaults setzen | ||
if args.format == nil or args.format == "table" then | if args.format == nil or args.format == "table" then | ||
| Zeile 159: | Zeile 159: | ||
local klasse = args["Klasse"] | local klasse = args["Klasse"] | ||
args["Klasse"] = nil | args["Klasse"] = nil | ||
-- newlines und Leerzeichen an Anfang/Ende | -- Rückformen ["?..."]="..." zu "?...=..." | ||
args = p.restoreQueryEqual(args) | |||
-- newlines und Leerzeichen an Anfang/Ende abschneiden | |||
for i, _ in ipairs(args) do | for i, _ in ipairs(args) do | ||
args[i] = str.strip(string.gsub(args[i], "\n", "")) | args[i] = str.strip(string.gsub(args[i], "\n", "")) | ||
end | end | ||
-- query-args aufbereiten | -- query-args aufbereiten | ||
for i, _ in ipairs(args) do | for i, _ in ipairs(args) do | ||
| Zeile 207: | Zeile 200: | ||
t = t .. frame:callParserFunction("#ask", args) | t = t .. frame:callParserFunction("#ask", args) | ||
return t | return t | ||
end | |||
function p.restoreQueryEqual(args) | |||
-- Rückformen ["?..."]="..." zu "?...=..." | |||
local args_restored = {} | |||
for a, v in pairs(args) do | |||
if type(a) == "string" and string.sub(str.strip(a), 1, 1) == "?" then | |||
table.insert(args_restored, a .. "=" .. v) -- ["?..."]="..." durch "?...=..." ersetzen | |||
else | |||
args_restored[a] = v | |||
end | |||
end | |||
return args_restored | |||
end | end | ||
return p | return p | ||