From fa10e0945ecd45bfe78a2c8fb015a43092b4944b Mon Sep 17 00:00:00 2001 From: plegall Date: Thu, 10 Dec 2015 14:02:22 +0100 Subject: bug #385 update to smarty-3.1.28-dev (from Github) --- .../smarty_internal_runtime_updatescope.php | 55 ++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 include/smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php (limited to 'include/smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php') diff --git a/include/smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php b/include/smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php new file mode 100644 index 000000000..3d80c859a --- /dev/null +++ b/include/smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php @@ -0,0 +1,55 @@ +scope) { + return; + } + foreach (array($scope, $tpl->scope) as $s) { + $s = ($bubble_up = $s >= Smarty::SCOPE_BUBBLE_UP) ? $s - Smarty::SCOPE_BUBBLE_UP : $s; + if ($bubble_up && $s) { + $ptr = $tpl->parent; + if (isset($ptr)) { + $ptr->tpl_vars[$varName] = $tpl->tpl_vars[$varName]; + $ptr = $ptr->parent; + } + if ($s == Smarty::SCOPE_PARENT) { + continue; + } + while (isset($ptr) && $ptr->_objType == 2) { + $ptr->tpl_vars[$varName] = $tpl->tpl_vars[$varName]; + $ptr = $ptr->parent; + } + if ($s == Smarty::SCOPE_TPL_ROOT) { + continue; + } elseif ($s == Smarty::SCOPE_SMARTY) { + $tpl->smarty->tpl_vars[$varName] = $tpl->tpl_vars[$varName]; + } elseif ($s == Smarty::SCOPE_GLOBAL) { + Smarty::$global_tpl_vars[$varName] = $tpl->tpl_vars[$varName]; + } elseif ($s == Smarty::SCOPE_ROOT) { + while (isset($ptr->parent)) { + $ptr = $ptr->parent; + } + $ptr->tpl_vars[$varName] = $tpl->tpl_vars[$varName]; + } + } + } + } +} -- cgit v1.2.3