summaryrefslogtreecommitdiffstats
path: root/app/acf_www-controller.lua
diff options
context:
space:
mode:
Diffstat (limited to 'app/acf_www-controller.lua')
-rw-r--r--app/acf_www-controller.lua39
1 files changed, 12 insertions, 27 deletions
diff --git a/app/acf_www-controller.lua b/app/acf_www-controller.lua
index b4f8e91..462a226 100644
--- a/app/acf_www-controller.lua
+++ b/app/acf_www-controller.lua
@@ -14,6 +14,7 @@ require "posix"
-- We use the parent exception handler in a last-case situation
local parent_exception_handler
local parent_create_helper_library
+local parent_view_resolver
local function build_menus(self)
m=require("menubuilder")
@@ -171,44 +172,27 @@ end
-- Our local view resolver called by our dispatch - add the template and skin
view_resolver = function(self)
- local template, viewname, viewlibrary
- local viewtype = self.conf.viewtype or "html"
+ self.conf.viewtype = self.conf.viewtype or "html"
+ local viewfunc, viewlibrary, pageinfo = parent_view_resolver(self)
+ pageinfo.viewfunc = viewfunc
-- search for template
+ local template
if self.conf.component ~= true then
template = find_template ( self.conf.appdir, self.conf.prefix,
- self.conf.controller, self.conf.action, viewtype )
+ self.conf.controller, self.conf.action, self.conf.viewtype )
end
-
- -- search for view
- viewname = find_view ( self.conf.appdir, self.conf.prefix,
- self.conf.controller, self.conf.action, viewtype )
- local func = function() end
+ local func = viewfunc
if template then
- -- We have a template
+ -- We have a template, use it as the function
func = haserl.loadfile (template)
- elseif viewname then
- -- No template, but have a view
- func = haserl.loadfile (viewname)
end
-
- -- create the view helper library
- viewlibrary = self:create_helper_library()
-
- local pageinfo = { viewfile = viewname,
- controller = self.conf.controller,
- action = self.conf.action,
- prefix = self.conf.prefix,
- script = self.conf.script,
- wwwprefix = self.conf.wwwprefix or "",
- staticdir = self.conf.staticdir or "",
- skin = self.conf.skin or "",
- orig_action = self.conf.orig_action or self.conf.prefix .. self.conf.controller .. "/" .. self.conf.action,
- clientdata = self.clientdata,
- }
+
if self.sessiondata.userinfo and self.sessiondata.userinfo.skin and self.sessiondata.userinfo.skin ~= "" then
pageinfo.skin = self.sessiondata.userinfo.skin
+ else
+ pageinfo.skin = self.conf.skin or ""
end
return func, viewlibrary, pageinfo, self.sessiondata
@@ -235,6 +219,7 @@ mvc.on_load = function (self, parent)
parent_exception_handler = parent.exception_handler
parent_create_helper_library = parent.create_helper_library
+ parent_view_resolver = parent.view_resolver
sessionlib=require ("session")