diff --git a/e107_handlers/e107_class.php b/e107_handlers/e107_class.php index 50b4c85b2..36fe063ac 100644 --- a/e107_handlers/e107_class.php +++ b/e107_handlers/e107_class.php @@ -1985,21 +1985,18 @@ class e107 $id = str_replace('/', '_', $id); $ret = self::_getTemplate($id, $key, $reg_path, $path, $info); + ### Attempt to fix merge issues; in case we override - template array not found in theme, + ### so we need to continue and merge with core templates + if($merge && $override && empty($ret)) + { + $ret = array(); + } - // if(!$merge || !$override || !is_array($ret)) // problems merging when template doesn't exist in core. - - if((!$merge && !$override) || is_string($ret)) //XXX This appears to have less problems, but requires more testing. + if((!$merge && !$override) || is_string($ret)) { return $ret; } - if(!is_array($ret)) // for the merge below. - { - $ret = array(); - } - - // print_a($id ." ". $key ." ". $reg_path." ". $path." ".$info); - // merge $reg_path = 'core/e107/templates/'.$id; $path = self::coreTemplatePath($id, false); diff --git a/page.php b/page.php index 543cb0385..0f173c0b2 100644 --- a/page.php +++ b/page.php @@ -395,9 +395,14 @@ class pageClass $this->page = $sql->fetch(); - $this->template = e107::getCoreTemplate('page', vartrue($this->page['page_template'], 'default'), false, true); // setting override to true breaks default. - // $this->template = e107::getCoreTemplate('page', 'default',true,true); - // print_a($this->template); + // setting override to true breaks default. + $this->template = e107::getCoreTemplate('page', vartrue($this->page['page_template'], 'default'), true, true); + if(!$this->template) + { + // switch to default + $this->template = e107::getCoreTemplate('page', 'default', false, false); + } + if(empty($this->template)) { $this->template = e107::getCoreTemplate('page', 'default');