webmcp

view framework/env/request/__init.lua @ 96:db4bf2e6513c

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

Impressum / About Us