- bugfix {assign} with scope root and global did not work in all cases

This commit is contained in:
uwe.tews@googlemail.com
2011-09-20 19:12:51 +00:00
parent a3dc61542d
commit eb60692dbe
2 changed files with 9 additions and 4 deletions

View File

@@ -3,6 +3,7 @@
- bugfix removed debug echo output while compiling template inheritance - bugfix removed debug echo output while compiling template inheritance
- bugfix relative paths in $template_dir broke relative path resolving in {include "../foo.tpl"} - bugfix relative paths in $template_dir broke relative path resolving in {include "../foo.tpl"}
- bugfix {include} did not work inside nested {block} tags - bugfix {include} did not work inside nested {block} tags
- bugfix {assign} with scope root and global did not work in all cases
19.09.2011 19.09.2011
- bugfix regression in Smarty_CacheReource_KeyValueStore introduced by r4261 - bugfix regression in Smarty_CacheReource_KeyValueStore introduced by r4261

View File

@@ -60,11 +60,15 @@ class Smarty_Internal_Compile_Assign extends Smarty_Internal_CompileBase {
} else { } else {
$output = "<?php \$_smarty_tpl->tpl_vars[$_attr[var]] = new Smarty_variable($_attr[value], $_nocache, $_scope);"; $output = "<?php \$_smarty_tpl->tpl_vars[$_attr[var]] = new Smarty_variable($_attr[value], $_nocache, $_scope);";
} }
if ($_scope != Smarty::SCOPE_LOCAL) { if ($_scope == Smarty::SCOPE_PARENT) {
$output .= "\nif (\$tmp_ptr = &\$_smarty_tpl->getScope($_scope) != null) \$tmp_ptr[$_attr[var]] = clone \$_smarty_tpl->tpl_vars[$_attr[var]];?>"; $output .= "\nif (\$_smarty_tpl->parent != null) \$_smarty_tpl->parent->tpl_vars[$_attr[var]] = clone \$_smarty_tpl->tpl_vars[$_attr[var]];";
} else { } elseif ($_scope == Smarty::SCOPE_ROOT || $_scope == Smarty::SCOPE_GLOBAL) {
$output .= '?>'; $output .= "\n\$_ptr = \$_smarty_tpl->parent; while (\$_ptr != null) {\$_ptr->tpl_vars[$_attr[var]] = clone \$_smarty_tpl->tpl_vars[$_attr[var]]; \$_ptr = \$_ptr->parent; }";
} }
if ( $_scope == Smarty::SCOPE_GLOBAL) {
$output .= "\nSmarty::\$global_tpl_vars[$_attr[var]] = clone \$_smarty_tpl->tpl_vars[$_attr[var]];";
}
$output .= '?>';
return $output; return $output;
} }