diff -r 000000000000 -r 3906ca745819 packages/ssoinabox-webui/root/usr/local/share/ssoinabox/htdocs/includes/smarty/sysplugins/smarty_internal_compile_call.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/packages/ssoinabox-webui/root/usr/local/share/ssoinabox/htdocs/includes/smarty/sysplugins/smarty_internal_compile_call.php Tue Jan 08 23:13:29 2013 -0500 @@ -0,0 +1,130 @@ +getAttributes($compiler, $args); + // save possible attributes + if (isset($_attr['assign'])) { + // output will be stored in a smarty variable instead of beind displayed + $_assign = $_attr['assign']; + } + $_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) { + $_nocache = 'true'; + } else { + $_nocache = 'false'; + } + $_paramsArray = array(); + foreach ($_attr as $_key => $_value) { + if (is_int($_key)) { + $_paramsArray[] = "$_key=>$_value"; + } else { + $_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']); + // 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"; + } + } else { + if ($compiler->template->caching) { + $_output = "\n"; + } else { + $_output = "\n"; + } + } + return $_output; + } + +} + +?> \ No newline at end of file