Vorlagenprogrammierung | Diskussionen | Lua | Unterseiten | ||
Modul | Deutsch
|
Modul: | Dokumentation |
Diese Seite enthält Code in der Programmiersprache Lua. Einbindungszahl Cirrus
local p = {}
local currentVersion = 1
local tVer = {
["2016-"] = 1,
}
function p.getData(tArgs)
if type(tArgs) == type({}) then
if not tonumber(tArgs.version) then
tArgs.versionDate = tArgs.version
end
tArgs.version = tVer[tArgs.versionDate] or tonumber(tArgs.version) or tArgs.current and currentVersion
if tArgs.version then
local b, tSub = pcall(require, "Module:Data/CH-AG/1/" .. tArgs.version)
if type(tSub) == type({}) then
if tSub.getData then
return tSub.getData(tArgs)
else
tArgs.versionError = tArgs.versionError or "[[Module:Data/CH-AG/1/" .. tArgs.version .."]].getData"
return tArgs.versionError
end
else
tArgs.versionError = tArgs.versionError or "[[Module:Data/CH-AG/1/" .. tArgs.version .."]]"
return tArgs.versionError
end
else
local s = '{| class="wikitable"\n!versionDate\n!version\n'
local t = {}
for i, v in pairs(tVer) do
t[#t + 1] = {v, i}
end
table.sort(t, function(t1, t2) return t1[1] < t2[1] or t1[1] == t2[1] and t1[2] < t2[2] end)
for i, v in ipairs(t) do
s = s .. "|-\n|" .. v[2] .. "\n|" .. v[1] .. "\n"
end
return s .. "|}"
end
else
return '<span class="error">tArgs = {}</span>'
end
end
function p.invokeData(frame)
local t = {}
t.version = frame.args[1] or frame.args["version"]
t.key = frame.args[2] or frame.args["key"]
t.field = frame.args[3] or frame.args["field"]
for i, v in pairs(frame.args) do
t[i] = t[i] or v
end
return p.getData(t)
end
return p