OK, I found the problem.
That is the same bug we have when updating system module using the default theme: Redirect page loses style!
This is why:
system_redirect.html and system_siteclosed.html are templates and not themes!
Template have the following variables available:
$this->assign(array(
'xoops_url' => XOOPS_URL ,
'xoops_rootpath' => XOOPS_ROOT_PATH ,
'xoops_langcode' => _LANGCODE ,
'xoops_charset' => _CHARSET ,
'xoops_version' => XOOPS_VERSION ,
'xoops_upload_url' => XOOPS_UPLOAD_URL));
Themes have some more variables:
$this->template->assign(array(
'xoops_theme' => $GLOBALS['xoopsConfig']['theme_set'] ,
'xoops_imageurl' => XOOPS_THEME_URL . '/' . $GLOBALS['xoopsConfig']['theme_set'] . '/',
'xoops_themecss' => xoops_getcss($GLOBALS['xoopsConfig']['theme_set']),
'xoops_requesturi' => htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES),
'xoops_sitename' => htmlspecialchars($GLOBALS['xoopsConfig']['sitename'], ENT_QUOTES),
'xoops_slogan' => htmlspecialchars($GLOBALS['xoopsConfig']['slogan'], ENT_QUOTES),
'xoops_dirname' => isset($GLOBALS['xoopsModule'])&& is_object($GLOBALS['xoopsModule']) ? $GLOBALS['xoopsModule']->getVar('dirname') : 'system',
'xoops_banner' => $GLOBALS['xoopsConfig']['banners'] ? xoops_getbanner() : ' ',
'xoops_pagetitle' => isset($GLOBALS['xoopsModule']) && is_object($GLOBALS['xoopsModule']) ? $GLOBALS['xoopsModule']->getVar('name') : htmlspecialchars($GLOBALS['xoopsConfig']['slogan'], ENT_QUOTES)));
if (isset($GLOBALS['xoopsUser']) && is_object($GLOBALS['xoopsUser'])) {
$this->template->assign(array(
'xoops_isuser' => true,
'xoops_avatar' => $GLOBALS['xoopsUser']->getVar('user_avatar'),
'xoops_userid' => $GLOBALS['xoopsUser']->getVar('uid'),
'xoops_uname' => $GLOBALS['xoopsUser']->getVar('uname'),
'xoops_name' => $GLOBALS['xoopsUser']->getVar('name'),
'xoops_isadmin' => $GLOBALS['xoopsUserIsAdmin'],
'xoops_usergroups' => $GLOBALS['xoopsUser']->getGroups()));
} else {
$this->template->assign(array(
'xoops_isuser' => false,
'xoops_isadmin' => false,
'xoops_usergroups' => array(XOOPS_GROUP_ANONYMOUS)));
}
If you delete smarty compiles and hit a redirect page in the front end (where theme is available), then you will have luck and the new template will be compiled ok. If you update system module where a $tpl->touch() is made (outside the scope of a theme) then the new compile will be messed up.
2 Solutions:
1 - Update the touch method to create a theme instance and use the tpl from the theme = Waste of resources!!
2 - Use templates as templates and not as themes.
The templates provided in default theme should not make use of xoImgUrl (requires $xoTheme). This is a core bug.