Index: branches/unlabeled/unlabeled-1.36.2/core/units/admin/admin_tag_processor.php =================================================================== diff -u -r8232 -r8233 --- branches/unlabeled/unlabeled-1.36.2/core/units/admin/admin_tag_processor.php (.../admin_tag_processor.php) (revision 8232) +++ branches/unlabeled/unlabeled-1.36.2/core/units/admin/admin_tag_processor.php (.../admin_tag_processor.php) (revision 8233) @@ -730,18 +730,26 @@ return false; } - list(, $env) = explode('|', $last_template); + list($index_file, $env) = explode('|', $last_template); $vars = $this->Application->HttpQuery->processQueryString($env, 'pass'); - if ($vars['t'] == 'login' || $vars['t'] == 'index') { + $recursion_templates = Array ('login', 'index'); + + if (isset($vars['admin']) && $vars['admin'] == 1) { + // index template doesn't begin recursion on front-end (in admin frame) + $vars['m_theme'] = ''; + unset($recursion_templates[ array_search('index', $recursion_templates)]); + } + + if (in_array($vars['t'], $recursion_templates)) { // prevents redirect recursion OR old in-portal pages return false; } $vars = array_merge_recursive2($vars, $params); $t = $vars['t']; unset($vars['t']); - - return $this->Application->HREF($t, '', $vars); + + return $this->Application->HREF($t, '', $vars, $index_file); }