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) --- .../sysplugins/smarty_internal_compile_call.php | 77 +++++----------------- 1 file changed, 18 insertions(+), 59 deletions(-) (limited to 'include/smarty/libs/sysplugins/smarty_internal_compile_call.php') diff --git a/include/smarty/libs/sysplugins/smarty_internal_compile_call.php b/include/smarty/libs/sysplugins/smarty_internal_compile_call.php index af12a048c..b7204bec0 100644 --- a/include/smarty/libs/sysplugins/smarty_internal_compile_call.php +++ b/include/smarty/libs/sysplugins/smarty_internal_compile_call.php @@ -1,22 +1,21 @@ getAttributes($compiler, $args); // save possible attributes if (isset($_attr['assign'])) { - // output will be stored in a smarty variable instead of beind displayed + // output will be stored in a smarty variable instead of being displayed $_assign = $_attr['assign']; } + //$_name = trim($_attr['name'], "'\""); $_name = $_attr['name']; - if ($compiler->compiles_template_function) { - $compiler->called_functions[] = trim($_name, "'\""); - } unset($_attr['name'], $_attr['assign'], $_attr['nocache']); // set flag (compiled code of {function} must be included in cache file - if ($compiler->nocache || $compiler->tag_nocache) { + if (!$compiler->template->caching || $compiler->nocache || $compiler->tag_nocache) { $_nocache = 'true'; } else { $_nocache = 'false'; @@ -75,56 +74,16 @@ class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase { $_paramsArray[] = "'$_key'=>$_value"; } } - 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)) { - $_paramsArray[] = "$_key=>$_value"; - } else { - $_paramsArray[] = "'$_key'=>$_value"; - } - } - } - } elseif (isset($compiler->smarty->template_functions[$_name]['parameter'])) { - foreach ($compiler->smarty->template_functions[$_name]['parameter'] as $_key => $_value) { - if (!isset($_attr[$_key])) { - if (is_int($_key)) { - $_paramsArray[] = "$_key=>$_value"; - } else { - $_paramsArray[] = "'$_key'=>$_value"; - } - } - } - } - //varibale name? - if (!(strpos($_name, '$') === false)) { - $call_cache = $_name; - $call_function = '$tmp = "smarty_template_function_".' . $_name . '; $tmp'; - } else { - $_name = trim($_name, "'\""); - $call_cache = "'{$_name}'"; - $call_function = 'smarty_template_function_' . $_name; - } - $_params = 'array(' . implode(",", $_paramsArray) . ')'; - $_hash = str_replace('-', '_', $compiler->template->properties['nocache_hash']); + //$compiler->suppressNocacheProcessing = true; // was there an assign attribute if (isset($_assign)) { - if ($compiler->template->caching) { - $_output = "assign({$_assign}, ob_get_clean());?>\n"; - } else { - $_output = "assign({$_assign}, ob_get_clean());?>\n"; - } + $_output = + "smarty->ext->_tplFunction->callTemplateFunction(\$_smarty_tpl, {$_name}, {$_params}, {$_nocache});\n\$_smarty_tpl->assign({$_assign}, ob_get_clean());?>\n"; } else { - if ($compiler->template->caching) { - $_output = "\n"; - } else { - $_output = "\n"; - } + $_output = + "smarty->ext->_tplFunction->callTemplateFunction(\$_smarty_tpl, {$_name}, {$_params}, {$_nocache});?>\n"; } return $_output; } - } - -?> \ No newline at end of file -- cgit v1.2.3