Code

Updated smarty
[gosa.git] / gosa-core / include / smarty / sysplugins / smarty_internal_compile_private_function_plugin.php
1 <?php
2 /**
3 * Smarty Internal Plugin Compile Function Plugin
4
5 * Compiles code for the execution of function plugin
6
7 * @package Smarty
8 * @subpackage Compiler
9 * @author Uwe Tews 
10 */
11 /**
12 * Smarty Internal Plugin Compile Function Plugin Class
13 */
14 class Smarty_Internal_Compile_Private_Function_Plugin extends Smarty_Internal_CompileBase {
15     /**
16     * Compiles code for the execution of function plugin
17     * 
18     * @param array $args array with attributes from parser
19     * @param string $tag name of function
20     * @param object $compiler compiler object
21     * @return string compiled code
22     */
23     public function compile($args, $compiler, $tag, $function)
24     {
25         $this->compiler = $compiler; 
26         // This tag does create output
27         $this->compiler->has_output = true;
29         $this->required_attributes = array();
30         $this->optional_attributes = array('_any'); 
31         // check and get attributes
32         $_attr = $this->_get_attributes($args); 
33         // convert attributes into parameter array string
34         $_paramsArray = array();
35         foreach ($_attr as $_key => $_value) {
36             if (is_int($_key)) {
37                 $_paramsArray[] = "$_key=>$_value";
38             } else {
39                 $_paramsArray[] = "'$_key'=>$_value";
40             } 
41         } 
42         $_params = 'array(' . implode(",", $_paramsArray) . ')'; 
43         // compile code
44         if (is_array($function)) {
45             $output = "<?php echo call_user_func(array('{$function[0]}','{$function[1]}'),{$_params},\$_smarty_tpl->smarty,\$_smarty_tpl);?>\n";
46         } else {
47             $output = "<?php echo {$function}({$_params},\$_smarty_tpl->smarty,\$_smarty_tpl);?>\n";
48         } 
49         return $output;
50     } 
51
53 ?>