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

Impressum / About Us