rev |
line source |
jbe/bsw@0
|
1 request._status = nil
|
jbe/bsw@0
|
2 request._forward = nil
|
jbe/bsw@0
|
3 request._forward_processed = false
|
jbe/bsw@0
|
4 request._redirect = nil
|
jbe/bsw@0
|
5 request._absolute_baseurl = nil
|
jbe/bsw@0
|
6 request._404_route = nil
|
jbe/bsw@0
|
7 request._force_absolute_baseurl = false
|
jbe/bsw@0
|
8 request._perm_params = {}
|
jbe/bsw@0
|
9 request._csrf_secret = nil
|
jbe@1
|
10 request._json_requests_allowed = false
|
jbe/bsw@0
|
11
|
jbe@91
|
12 request._params = {}
|
jbe/bsw@0
|
13 local depth
|
jbe/bsw@0
|
14 if cgi then -- if-clause to support interactive mode
|
jbe@91
|
15 for key, value in pairs(cgi.params) do
|
jbe@91
|
16 if not string.match(key, "^_webmcp_") then
|
jbe@91
|
17 request._params[key] = value
|
jbe@91
|
18 end
|
jbe@91
|
19 end
|
jbe@91
|
20 local path = cgi.params._webmcp_path
|
jbe@91
|
21 if path then
|
jbe@91
|
22 local function parse()
|
jbe@91
|
23 local module, action, view, suffix, id
|
jbe@91
|
24 if path == "" then
|
jbe@91
|
25 request._module = "index"
|
jbe@91
|
26 request._view = "index"
|
jbe@91
|
27 depth = 0
|
jbe@96
|
28 return
|
jbe@91
|
29 end
|
jbe@91
|
30 module = string.match(path, "^([^/]+)/$")
|
jbe@91
|
31 if module then
|
jbe@91
|
32 request._module = module
|
jbe@91
|
33 request._view = "index"
|
jbe@91
|
34 depth = 1
|
jbe@91
|
35 return
|
jbe@91
|
36 end
|
jbe@91
|
37 module, action = string.match(path, "^([^/]+)/([^/.]+)$")
|
jbe@91
|
38 if module then
|
jbe@91
|
39 request._module = module
|
jbe@91
|
40 request._action = action
|
jbe@91
|
41 depth = 1
|
jbe@91
|
42 return
|
jbe@91
|
43 end
|
jbe@91
|
44 module, view, suffix = string.match(path, "^([^/]+)/([^/.]+)%.([^/]+)$")
|
jbe@91
|
45 if module then
|
jbe@91
|
46 request._module = module
|
jbe@91
|
47 request._view = view
|
jbe@91
|
48 request._suffix = suffix
|
jbe@91
|
49 depth = 1
|
jbe@91
|
50 return
|
jbe@91
|
51 end
|
jbe@91
|
52 module, view, id, suffix = string.match(path, "^([^/]+)/([^/]+)/([^/.]+)%.([^/]+)$")
|
jbe@91
|
53 if module then
|
jbe@91
|
54 request._module = module
|
jbe@91
|
55 request._view = view
|
jbe@91
|
56 request._id = id
|
jbe@91
|
57 request._suffix = suffix
|
jbe@91
|
58 depth = 2
|
jbe@91
|
59 return
|
jbe@91
|
60 end
|
jbe@91
|
61 end
|
jbe@91
|
62 parse()
|
jbe@91
|
63 else
|
jbe@91
|
64 request._module = cgi.params._webmcp_module
|
jbe@91
|
65 request._action = cgi.params._webmcp_action
|
jbe@91
|
66 request._view = cgi.params._webmcp_view
|
jbe@91
|
67 request._suffix = cgi.params._webmcp_suffix
|
jbe@91
|
68 request._id = cgi.params._webmcp_id
|
jbe@96
|
69 depth = tonumber(cgi.params._webmcp_urldepth)
|
jbe@91
|
70 end
|
jbe/bsw@0
|
71 end
|
jbe/bsw@0
|
72 if depth and depth > 0 then
|
jbe/bsw@0
|
73 local elements = {}
|
jbe/bsw@0
|
74 for i = 1, depth do
|
jbe/bsw@0
|
75 elements[#elements+1] = "../"
|
jbe/bsw@0
|
76 end
|
jbe/bsw@0
|
77 request._relative_baseurl = table.concat(elements)
|
jbe/bsw@0
|
78 else
|
jbe/bsw@0
|
79 request._relative_baseurl = "./"
|
jbe/bsw@0
|
80 end
|
jbe/bsw@0
|
81
|
jbe/bsw@0
|
82 request._app_basepath = assert(
|
jbe/bsw@0
|
83 os.getenv("WEBMCP_APP_BASEPATH"),
|
jbe/bsw@0
|
84 'WEBMCP_APP_BASEPATH is not set.'
|
jbe/bsw@0
|
85 )
|
jbe/bsw@0
|
86 if not string.find(request._app_basepath, "/$") then
|
jbe/bsw@0
|
87 request._app_basebase = request._app_basepath .. "/"
|
jbe/bsw@0
|
88 end
|