diff --git a/change_log.txt b/change_log.txt index 0e001147..2581f7d4 100644 --- a/change_log.txt +++ b/change_log.txt @@ -1,3 +1,6 @@ +01/06/2010 +- bugfix on template functions used with template inheritance + 31/05/2010 - bugfix the parser did not allow some smarty variables with special name like $for, $if, $else and others. diff --git a/libs/sysplugins/smarty_internal_compile_call.php b/libs/sysplugins/smarty_internal_compile_call.php index 009ccc4b..0f7e5214 100644 --- a/libs/sysplugins/smarty_internal_compile_call.php +++ b/libs/sysplugins/smarty_internal_compile_call.php @@ -49,7 +49,7 @@ class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase { $_paramsArray[] = "'$_key'=>$_value"; } } - if (isset($compiler->template->properties['function'][$_name])) { + if (isset($compiler->template->properties['function'][$_name]['parameter'])) { foreach ($compiler->template->properties['function'][$_name]['parameter'] as $_key => $_value) { if (!isset($_attr[$_key])) { if (is_int($_key)) { @@ -59,8 +59,8 @@ class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase { } } } - } elseif (isset($this->smarty->template->properties['function'][$_name])) { - foreach ($this->smarty->template->properties['function'][$_name]['parameter'] as $_key => $_value) { + } elseif (isset($this->smarty->template_functions[$_name]['parameter'])) { + foreach ($this->smarty->template_functions[$_name]['parameter'] as $_key => $_value) { if (!isset($_attr[$_key])) { if (is_int($_key)) { $_paramsArray[] = "$_key=>$_value"; diff --git a/libs/sysplugins/smarty_internal_compile_function.php b/libs/sysplugins/smarty_internal_compile_function.php index 07a8f763..1f2fc020 100644 --- a/libs/sysplugins/smarty_internal_compile_function.php +++ b/libs/sysplugins/smarty_internal_compile_function.php @@ -34,6 +34,9 @@ class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase { foreach ($_attr as $_key => $_data) { $compiler->template->properties['function'][$_name]['parameter'][$_key] = $_data; } + if (isset($compiler->template->properties['function'][$_name]['parameter'])) { + $compiler->smarty->template_functions[$_name]['parameter'] = $compiler->template->properties['function'][$_name]['parameter']; + } if ($compiler->template->caching) { $output = ''; } else {