diff options
author | plegall <plg@piwigo.org> | 2015-12-30 16:21:32 +0100 |
---|---|---|
committer | plegall <plg@piwigo.org> | 2015-12-30 16:21:32 +0100 |
commit | 3ec3cbe6cec5968d29cb11af139123191f4cb4ee (patch) | |
tree | 34aecd51071d63f8df1862a1a11898d8c43fe68a /include/smarty/libs/sysplugins/smarty_internal_runtime_var.php | |
parent | 6ba0148e646b2a193dc4111bb0a443d8c193e646 (diff) | |
parent | 1681b02ee98c2deb740d394280a2a685170bc72e (diff) |
Merge branch 'bug/385-php7'
Diffstat (limited to 'include/smarty/libs/sysplugins/smarty_internal_runtime_var.php')
-rw-r--r-- | include/smarty/libs/sysplugins/smarty_internal_runtime_var.php | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/include/smarty/libs/sysplugins/smarty_internal_runtime_var.php b/include/smarty/libs/sysplugins/smarty_internal_runtime_var.php new file mode 100644 index 000000000..fe4f94d91 --- /dev/null +++ b/include/smarty/libs/sysplugins/smarty_internal_runtime_var.php @@ -0,0 +1,33 @@ +<?php + +/** + * Runtime Methods createLocalArrayVariable + * + * @package Smarty + * @subpackage PluginsInternal + * @author Uwe Tews + * + **/ +class Smarty_Internal_Runtime_Var +{ + /** + * Template code runtime function to create a local Smarty variable for array assignments + * + * @param \Smarty_Internal_Template $tpl template object + * @param string $varName template variable name + * @param bool $nocache cache mode of variable + */ + public function createLocalArrayVariable(\Smarty_Internal_Template $tpl, $varName, $nocache = false) + { + if (!isset($tpl->tpl_vars[$varName])) { + $tpl->tpl_vars[$varName] = new Smarty_Variable(array(), $nocache); + } else { + $tpl->tpl_vars[$varName] = clone $tpl->tpl_vars[$varName]; + if (!(is_array($tpl->tpl_vars[$varName]->value) || + $tpl->tpl_vars[$varName]->value instanceof ArrayAccess) + ) { + settype($tpl->tpl_vars[$varName]->value, 'array'); + } + } + } +} |