diff options
author | Steven Barth <steven@midlink.org> | 2008-09-29 15:38:13 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2008-09-29 15:38:13 +0000 |
commit | 40540257aec8d0a32ef68b499ea2fe6416199a19 (patch) | |
tree | 2ef1fe458776a5ef50999436ce5088f54224a352 /libs/web/luasrc | |
parent | 590f88b6fa117f8fa5c05e9ed4bf8a1287a72668 (diff) |
Fallback to working theme if selected one does not exist
Diffstat (limited to 'libs/web/luasrc')
-rw-r--r-- | libs/web/luasrc/dispatcher.lua | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/libs/web/luasrc/dispatcher.lua b/libs/web/luasrc/dispatcher.lua index 236bc9c15d..fc568969b2 100644 --- a/libs/web/luasrc/dispatcher.lua +++ b/libs/web/luasrc/dispatcher.lua @@ -163,6 +163,18 @@ function dispatch(request) -- Init template engine if not track.notemplate then local tpl = require("luci.template") + local media = luci.config.main.mediaurlbase + if not pcall(tpl.Template, "themes/%s/header" % fs.basename(media)) then + media = nil + for name, theme in pairs(luci.config.themes) do + if name:sub(1,1) ~= "." and pcall(tpl.Template, + "themes/%s/header" % fs.basename(theme)) then + media = theme + end + end + assert(media, "No valid theme found") + end + local viewns = setmetatable({}, {__index=_G}) tpl.context.viewns = viewns viewns.write = luci.http.write @@ -170,7 +182,7 @@ function dispatch(request) viewns.translate = function(...) return require("luci.i18n").translate(...) end viewns.striptags = util.striptags viewns.controller = luci.http.getenv("SCRIPT_NAME") - viewns.media = luci.config.main.mediaurlbase + viewns.media = media viewns.resource = luci.config.main.resourcebase viewns.REQUEST_URI = (luci.http.getenv("SCRIPT_NAME") or "") .. (luci.http.getenv("PATH_INFO") or "") end |