webmcp
diff framework/env/request/__init.lua @ 97:52305ec73d47
Fixed 404 treatment regarding _webmcp_path interface
author | jbe |
---|---|
date | Sun Oct 14 17:11:13 2012 +0200 (2012-10-14) |
parents | db4bf2e6513c |
children | dd21d2e06a95 |
line diff
1.1 --- a/framework/env/request/__init.lua Wed Oct 10 18:41:11 2012 +0200 1.2 +++ b/framework/env/request/__init.lua Sun Oct 14 17:11:13 2012 +0200 1.3 @@ -3,6 +3,7 @@ 1.4 request._forward_processed = false 1.5 request._redirect = nil 1.6 request._absolute_baseurl = nil 1.7 +request._is_404 = false 1.8 request._404_route = nil 1.9 request._force_absolute_baseurl = false 1.10 request._perm_params = {} 1.11 @@ -12,6 +13,10 @@ 1.12 request._params = {} 1.13 local depth 1.14 if cgi then -- if-clause to support interactive mode 1.15 + if cgi.params._webmcp_404 then 1.16 + request.force_absolute_baseurl() 1.17 + request._is_404 = true 1.18 + end 1.19 for key, value in pairs(cgi.params) do 1.20 if not string.match(key, "^_webmcp_") then 1.21 request._params[key] = value 1.22 @@ -24,21 +29,18 @@ 1.23 if path == "" then 1.24 request._module = "index" 1.25 request._view = "index" 1.26 - depth = 0 1.27 return 1.28 end 1.29 module = string.match(path, "^([^/]+)/$") 1.30 if module then 1.31 request._module = module 1.32 request._view = "index" 1.33 - depth = 1 1.34 return 1.35 end 1.36 module, action = string.match(path, "^([^/]+)/([^/.]+)$") 1.37 if module then 1.38 request._module = module 1.39 request._action = action 1.40 - depth = 1 1.41 return 1.42 end 1.43 module, view, suffix = string.match(path, "^([^/]+)/([^/.]+)%.([^/]+)$") 1.44 @@ -46,7 +48,6 @@ 1.45 request._module = module 1.46 request._view = view 1.47 request._suffix = suffix 1.48 - depth = 1 1.49 return 1.50 end 1.51 module, view, id, suffix = string.match(path, "^([^/]+)/([^/]+)/([^/.]+)%.([^/]+)$") 1.52 @@ -55,11 +56,15 @@ 1.53 request._view = view 1.54 request._id = id 1.55 request._suffix = suffix 1.56 - depth = 2 1.57 return 1.58 end 1.59 + request._is_404 = true 1.60 end 1.61 parse() 1.62 + depth = 0 1.63 + for match in string.gmatch(path, "/") do 1.64 + depth = depth + 1 1.65 + end 1.66 else 1.67 request._module = cgi.params._webmcp_module 1.68 request._action = cgi.params._webmcp_action