webmcp

annotate framework/env/request/__init.lua @ 98:c92bd1ec1130

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

Impressum / About Us