diff options
author | Mario Vavti <mario@mariovavti.com> | 2015-12-06 23:12:37 +0100 |
---|---|---|
committer | Mario Vavti <mario@mariovavti.com> | 2015-12-06 23:12:37 +0100 |
commit | a6cb25020bb5200cc3c00ecc941ddb751644fbcc (patch) | |
tree | 29811e6cf8d702746558186ee3b7c466de791d33 /library/Smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php | |
parent | 26c465ad0c1d5b6801507ed190430f44ac92c672 (diff) | |
download | volse-hubzilla-a6cb25020bb5200cc3c00ecc941ddb751644fbcc.tar.gz volse-hubzilla-a6cb25020bb5200cc3c00ecc941ddb751644fbcc.tar.bz2 volse-hubzilla-a6cb25020bb5200cc3c00ecc941ddb751644fbcc.zip |
add missing smarty files
Diffstat (limited to 'library/Smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php')
-rw-r--r-- | library/Smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php b/library/Smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php new file mode 100644 index 000000000..3d80c859a --- /dev/null +++ b/library/Smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php @@ -0,0 +1,55 @@ +<?php + +/** + * Runtime Methods updateScope + * + * @package Smarty + * @subpackage PluginsInternal + * @author Uwe Tews + * + **/ +class Smarty_Internal_Runtime_UpdateScope +{ + /** + * Update new assigned template variable in other effected scopes + * + * @param \Smarty_Internal_Template $tpl template object + * @param string $varName variable name + * @param int $scope scope to which bubble up variable value + */ + public function updateScope(\Smarty_Internal_Template $tpl, $varName, $scope = Smarty::SCOPE_LOCAL) + { + if (!$scope && !$tpl->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]; + } + } + } + } +} |