fix last commit
[GitHub/Stricted/Domain-Control-Panel.git] / lib / api / smarty / sysplugins / smarty_internal_compile_private_function_plugin.php
1 <?php
2 /**
3 * Smarty Internal Plugin Compile Function Plugin
4 * Compiles code for the execution of function plugin
5 *
6 * @package Smarty
7 * @subpackage Compiler
8 * @author Uwe Tews
9 */
10
11 /**
12 * Smarty Internal Plugin Compile Function Plugin Class
13 *
14 * @package Smarty
15 * @subpackage Compiler
16 */
17 class Smarty_Internal_Compile_Private_Function_Plugin extends Smarty_Internal_CompileBase
18 {
19 /**
20 * Attribute definition: Overwrites base class.
21 *
22 * @var array
23 * @see Smarty_Internal_CompileBase
24 */
25 public $required_attributes = array();
26 /**
27 * Attribute definition: Overwrites base class.
28 *
29 * @var array
30 * @see Smarty_Internal_CompileBase
31 */
32 public $optional_attributes = array('_any');
33
34 /**
35 * Compiles code for the execution of function plugin
36 *
37 * @param array $args array with attributes from parser
38 * @param object $compiler compiler object
39 * @param array $parameter array with compilation parameter
40 * @param string $tag name of function plugin
41 * @param string $function PHP function name
42 *
43 * @return string compiled code
44 */
45 public function compile($args, $compiler, $parameter, $tag, $function)
46 {
47 // This tag does create output
48 $compiler->has_output = true;
49
50 // check and get attributes
51 $_attr = $this->getAttributes($compiler, $args);
52 if ($_attr['nocache'] === true) {
53 $compiler->tag_nocache = true;
54 }
55 unset($_attr['nocache']);
56 // convert attributes into parameter array string
57 $_paramsArray = array();
58 foreach ($_attr as $_key => $_value) {
59 if (is_int($_key)) {
60 $_paramsArray[] = "$_key=>$_value";
61 } else {
62 $_paramsArray[] = "'$_key'=>$_value";
63 }
64 }
65 $_params = 'array(' . implode(",", $_paramsArray) . ')';
66 // compile code
67 $output = "<?php echo {$function}({$_params},\$_smarty_tpl);?>\n";
68
69 return $output;
70 }
71 }