diff options
Diffstat (limited to 'lib/smarty3/sysplugins/smarty_internal_method_gettemplatevars.php')
-rw-r--r-- | lib/smarty3/sysplugins/smarty_internal_method_gettemplatevars.php | 39 |
1 files changed, 21 insertions, 18 deletions
diff --git a/lib/smarty3/sysplugins/smarty_internal_method_gettemplatevars.php b/lib/smarty3/sysplugins/smarty_internal_method_gettemplatevars.php index 1759646..9ef7d46 100644 --- a/lib/smarty3/sysplugins/smarty_internal_method_gettemplatevars.php +++ b/lib/smarty3/sysplugins/smarty_internal_method_gettemplatevars.php @@ -25,15 +25,18 @@ class Smarty_Internal_Method_GetTemplateVars * @link http://www.smarty.net/docs/en/api.get.template.vars.tpl * * @param \Smarty_Internal_Data|\Smarty_Internal_Template|\Smarty $data - * @param string $varName variable name or null + * @param string $varName variable name or null * @param \Smarty_Internal_Data|\Smarty_Internal_Template|\Smarty $_ptr optional pointer to data object - * @param bool $searchParents include parent templates? + * @param bool $searchParents include parent templates? * * @return mixed variable value or or array of variables */ - public function getTemplateVars(Smarty_Internal_Data $data, $varName = null, Smarty_Internal_Data $_ptr = null, - $searchParents = true) - { + public function getTemplateVars( + Smarty_Internal_Data $data, + $varName = null, + Smarty_Internal_Data $_ptr = null, + $searchParents = true + ) { if (isset($varName)) { $_var = $this->_getVariable($data, $varName, $_ptr, $searchParents, false); if (is_object($_var)) { @@ -47,20 +50,20 @@ class Smarty_Internal_Method_GetTemplateVars $_ptr = $data; } while ($_ptr !== null) { - foreach ($_ptr->tpl_vars AS $key => $var) { + foreach ($_ptr->tpl_vars as $key => $var) { if (!array_key_exists($key, $_result)) { $_result[ $key ] = $var->value; } } // not found, try at parent - if ($searchParents) { + if ($searchParents && isset($_ptr->parent)) { $_ptr = $_ptr->parent; } else { $_ptr = null; } } if ($searchParents && isset(Smarty::$global_tpl_vars)) { - foreach (Smarty::$global_tpl_vars AS $key => $var) { + foreach (Smarty::$global_tpl_vars as $key => $var) { if (!array_key_exists($key, $_result)) { $_result[ $key ] = $var->value; } @@ -81,9 +84,13 @@ class Smarty_Internal_Method_GetTemplateVars * * @return \Smarty_Variable */ - public function _getVariable(Smarty_Internal_Data $data, $varName, Smarty_Internal_Data $_ptr = null, - $searchParents = true, $errorEnable = true) - { + public function _getVariable( + Smarty_Internal_Data $data, + $varName, + Smarty_Internal_Data $_ptr = null, + $searchParents = true, + $errorEnable = true + ) { if ($_ptr === null) { $_ptr = $data; } @@ -93,7 +100,7 @@ class Smarty_Internal_Method_GetTemplateVars return $_ptr->tpl_vars[ $varName ]; } // not found, try at parent - if ($searchParents) { + if ($searchParents && isset($_ptr->parent)) { $_ptr = $_ptr->parent; } else { $_ptr = null; @@ -103,14 +110,10 @@ class Smarty_Internal_Method_GetTemplateVars // found it, return it return Smarty::$global_tpl_vars[ $varName ]; } - /* @var \Smarty $smarty */ - $smarty = isset($data->smarty) ? $data->smarty : $data; - if ($smarty->error_unassigned && $errorEnable) { + if ($errorEnable && $data->_getSmartyObj()->error_unassigned) { // force a notice $x = $$varName; } - return new Smarty_Undefined_Variable; } - -}
\ No newline at end of file +} |