| | |
| | | * @package Smarty |
| | | * @subpackage PluginsInternal |
| | | */ |
| | | class Smarty_Internal_Function_Call_Handler |
| | | { |
| | | class Smarty_Internal_Function_Call_Handler { |
| | | /** |
| | | * This function handles calls to template functions defined by {function} |
| | | * It does create a PHP function at the first call |
| | | * |
| | | * @param string $_name template function name |
| | | * @param string $_name template function name |
| | | * @param Smarty_Internal_Template $_template template object |
| | | * @param array $_params Smarty variables passed as call parameter |
| | | * @param string $_hash nocache hash value |
| | | * @param bool $_nocache nocache flag |
| | | * @param array $_params Smarty variables passed as call parameter |
| | | * @param string $_hash nocache hash value |
| | | * @param bool $_nocache nocache flag |
| | | */ |
| | | public static function call($_name, Smarty_Internal_Template $_template, $_params, $_hash, $_nocache) |
| | | { |
| | | public static function call(string $_name, Smarty_Internal_Template $_template, array $_params, string $_hash, bool $_nocache) { |
| | | if ($_nocache) { |
| | | $_function = "smarty_template_function_{$_name}_nocache"; |
| | | } else { |
| | |
| | | foreach (\$params as \$key => \$value) {\$_smarty_tpl->tpl_vars[\$key] = new Smarty_variable(\$value);}?>"; |
| | | if ($_nocache) { |
| | | $_code .= preg_replace(array("!<\?php echo \\'/\*%%SmartyNocache:{$_template->smarty->template_functions[$_name]['nocache_hash']}%%\*/|/\*/%%SmartyNocache:{$_template->smarty->template_functions[$_name]['nocache_hash']}%%\*/\\';\?>!", |
| | | "!\\\'!"), array('', "'"), $_template->smarty->template_functions[$_name]['compiled']); |
| | | $_template->smarty->template_functions[$_name]['called_nocache'] = true; |
| | | "!\\\'!"), array('', "'"), $_template->smarty->template_functions[$_name]['compiled']); |
| | | $_template->smarty->template_functions[$_name]['called_nocache'] = TRUE; |
| | | } else { |
| | | $_code .= preg_replace("/{$_template->smarty->template_functions[$_name]['nocache_hash']}/", $_template->properties['nocache_hash'], $_template->smarty->template_functions[$_name]['compiled']); |
| | | } |