From 98efe22e02bab7e363c1089ff2f3faffe6b30f21 Mon Sep 17 00:00:00 2001 From: uwetews Date: Sun, 23 Oct 2016 18:48:17 +0200 Subject: [PATCH] - improvement/bugfix when Smarty::fetch() is called on a template object the inheritance and tplFunctions property should be copied to the called template object --- libs/sysplugins/smarty_internal_templatebase.php | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/libs/sysplugins/smarty_internal_templatebase.php b/libs/sysplugins/smarty_internal_templatebase.php index bdc184ac..6a97bc4d 100644 --- a/libs/sysplugins/smarty_internal_templatebase.php +++ b/libs/sysplugins/smarty_internal_templatebase.php @@ -169,7 +169,14 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data if ($this->_objType == 1) { // set caching in template object $template->caching = $this->caching; - } else { + } + } + // fetch template content + $level = ob_get_level(); + try { + $_smarty_old_error_level = + isset($smarty->error_reporting) ? error_reporting($smarty->error_reporting) : null; + if ($this->_objType == 2) { /* @var Smarty_Internal_Template $this */ $template->tplFunctions = $this->tplFunctions; $template->inheritance = $this->inheritance; @@ -178,12 +185,6 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data if (isset($parent->_objType) && ($parent->_objType == 2) && !empty($parent->tplFunctions)) { $template->tplFunctions = array_merge($parent->tplFunctions, $template->tplFunctions); } - } - // fetch template content - $level = ob_get_level(); - try { - $_smarty_old_error_level = - isset($smarty->error_reporting) ? error_reporting($smarty->error_reporting) : null; if ($function == 2) { if ($template->caching) { // return cache status of template