Vorlagenprogrammierung Diskussionen Lua Unterseiten
Modul Deutsch

Modul: Dokumentation

Diese Seite enthält Code in der Programmiersprache Lua. Einbindungszahl Cirrus


local p = {}
local tSel = {
	["Einwohnerzahlen"] = 1,
}

function p.getData(tArgs)
	if type(tArgs) == type({}) then
		if not tonumber(tArgs.selection) then
			tArgs.selectionName = tArgs.selection
		end
		tArgs.selection = tSel[tArgs.selectionName] or tonumber(tArgs.selection)
		if tArgs.selection then
			local b, tSub = pcall(require, "Module:Data/DE-096775621/" .. tArgs.selection)
			if type(tSub) == type({}) then
				if tSub.getData then
					return tSub.getData(tArgs)
				else
					tArgs.selectionError = tArgs.selectionError or "[[Module:Data/DE-096775621/" .. tArgs.selection .."]].getData"
					return tArgs.selectionError
				end
			else
				tArgs.selectionError = tArgs.selectionError or "[[Module:Data/DE-096775621/" .. tArgs.selection .."]]"
				return tArgs.selectionError
			end
		else
			local s = '{| class="wikitable"\n!selectionName\n!selection\n'
			for i, v in pairs(tSel) do
				s = s .. "|-\n|" .. i .. "\n|" .. v .. "\n"
			end
			return s .. "|}"
		end
	else
		return '<span class="error">tArgs = {}</span>'
	end
end

function p.invokeData(frame)
	local t = {}
	t.selection = frame.args[1] or frame.args["selection"]
	t.version = frame.args[2] or frame.args["version"]
	t.key = frame.args[3] or frame.args["key"]
	t.field = frame.args[4] 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