Хранилища Subversion ant

Редакция

Авторство | Последнее изменение | Открыть журнал | Скачать | RSS

<?php
/**
* Smarty Internal Plugin Compile Object Funtion
*
* Compiles code for registered objects as function
*
* @package Smarty
* @subpackage Compiler
* @author Uwe Tews
*/

/**
* Smarty Internal Plugin Compile Object Function Class
*/

class Smarty_Internal_Compile_Object_Function extends Smarty_Internal_CompileBase {
    /**
    * Compiles code for the execution of function plugin
    *
    * @param array $args array with attributes from parser
    * @param string $tag name of function
    * @param string $methode name of methode to call
    * @param object $compiler compiler object
    * @return string compiled code
    */

    public function compile($args, $tag, $methode, $compiler)
    {
        $this->compiler = $compiler;
        // This tag does create output
        $this->compiler->has_output = true;

        $this->required_attributes = array();
        $this->optional_attributes = array('_any');
        // check and get attributes
        $_attr = $this->_get_attributes($args);
        // convert attributes into parameter array string
        $_paramsArray = array();
        foreach ($_attr as $_key => $_value) {
            $_paramsArray[] = "'$_key'=>$_value";
        }
        $_params = 'array(' . implode(",", $_paramsArray) . ')';
        // compile code
        $output = '<?php echo $_smarty_tpl->smarty->registered_objects[\''.$tag.'\'][0]->' . $methode . '(' . $_params . ',$_smarty_tpl->smarty,$_smarty_tpl);?>';

        return $output;
    }
}

?>