모듈:CGI2: 두 판 사이의 차이

리버티게임, 모두가 만들어가는 자유로운 게임
백괴게임>Gustmd7410
잔글편집 요약 없음
백괴게임>Gustmd7410
잔글편집 요약 없음
15번째 줄: 15번째 줄:


function p.toGET(frame)
function p.toGET(frame)
--[[local params = mw.text.jsonDecode(]] return '[' .. frame.args[1]:sub(1, -2) .. ']' --[[)]]
local params = mw.text.jsonDecode('[' .. frame.args[1]:sub(1, -2) .. ']')
--[[
for index, wrapper in pairs(params) do
for index, wrapper in pairs(params) do
if(wrapper.set) then
if(wrapper.set) then
28번째 줄: 28번째 줄:
return table.concat(params, '&')
return table.concat(params, '&')
]]
end
end



2019년 2월 26일 (화) 13:15 판


모듈 설명문서[보기] [편집] [역사] [새로 고침]

{{CGI2}}를 좀 더 편리하게 사용할 수 있도록 도와주는 모듈입니다.


local getArgs = require('모듈:Arguments').getArgs
local p = {}

function p.set(frame)
	local args = getArgs(frame:getParent())
	local params = {}
	local index = 1
	
	for key in pairs(args) do
		table.insert(params, {set = {key, args[key]}})
	end
	
	return mw.text.encode(mw.text.jsonEncode(params):sub(2, -2) .. ',')
end

function p.toGET(frame)
	local params = mw.text.jsonDecode('[' .. frame.args[1]:sub(1, -2) .. ']')
	
	for index, wrapper in pairs(params) do
		if(wrapper.set) then
			for i, str in pairs(wrapper.set) do
				wrapper.set[i] = mw.uri.encode(str)
			end
			
			params[index] = table.concat(wrapper.set, "=")
		end
	end
	
	return table.concat(params, '&')
end

function p.fromGET(frame)
	local params = mw.text.split(mw.frame.args.get, "&")
	
	for index, entry in pairs(params) do
		params[index] = {set = mw.text.split(entry, "=")}
		
		for i, str in pairs(params[index].set) do
				wrapper.set[i] = mw.uri.decode(str)
		end
	end
	
	return mw.text.encode(mw.text.jsonEncode(params):sub(2, -2) .. ",")
end

return p