| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | <?php/** * Smarty Internal Plugin Compile Function Plugin * * Compiles code for the execution of function plugin * * @package Smarty * @subpackage Compiler * @author Uwe Tews *//** * Smarty Internal Plugin Compile Function Plugin Class * * @package Smarty * @subpackage Compiler */class Smarty_Internal_Compile_Private_Function_Plugin extends Smarty_Internal_CompileBase {    /**     * Attribute definition: Overwrites base class.     *     * @var array     * @see Smarty_Internal_CompileBase     */    public $required_attributes = array();    /**     * Attribute definition: Overwrites base class.     *     * @var array     * @see Smarty_Internal_CompileBase     */    public $optional_attributes = array('_any');    /**     * Compiles code for the execution of function plugin     *     * @param array $args array with attributes from parser     * @param object $compiler compiler object     * @param array $parameter array with compilation parameter     * @param string $tag name of function plugin     * @param string $function PHP function name     * @return string compiled code     */    public function compile($args, $compiler, $parameter, $tag, $function)    {        // This tag does create output        $compiler->has_output = true;        // check and get attributes        $_attr = $this->getAttributes($compiler, $args);        if ($_attr['nocache'] === true) {            $compiler->tag_nocache = true;        }        unset($_attr['nocache']);        // convert attributes into parameter array string        $_paramsArray = array();        foreach ($_attr as $_key => $_value) {            if (is_int($_key)) {                $_paramsArray[] = "$_key=>$_value";            } else {                $_paramsArray[] = "'$_key'=>$_value";            }        }        $_params = 'array(' . implode(",", $_paramsArray) . ')';        // compile code        $output = "<?php echo {$function}({$_params},\$_smarty_tpl);?>\n";        return $output;    }}?>
 |