Home  >  Article  >  php教程  >  Yii的smarty插件 ESmartyViewRenderer 中的错误更正

Yii的smarty插件 ESmartyViewRenderer 中的错误更正

PHP中文网
PHP中文网Original
2016-05-25 17:13:08915browse

Yii的smarty插件 ESmartyViewRenderer 中的错误更正

class ESmartyViewRenderer extends CApplicationComponent implements IViewRenderer
{
    省略..................

    public function renderFile($context,$sourceFile,$data,$return) {
        // current controller properties will be accessible as {$this.property}
        $data['this'] = $context;
        // Yii::app()->... is available as {Yii->...} (deprecated, use {Yii::app()->...} instead, Smarty3 supports this.)
        $data['Yii'] = Yii::app();
        // time and memory information
        $data['TIME'] = sprintf('%0.5f',Yii::getLogger()->getExecutionTime());
        $data['MEMORY'] = round(Yii::getLogger()->getMemoryUsage()/(1024*1024),2).' MB';

        // check if view file exists
        if(!is_file($sourceFile) || ($file=realpath($sourceFile))===false)
            throw new CException(Yii::t('yiiext','View file "{file}" does not exist.', array('{file}'=>$sourceFile)));

        $template = $this->smarty->createTemplate($sourceFile, null, null, $data, false);

        //render or return
        if($return){
            /*
             * 源代码错误!
             * return $template->fetch($sourceFile);
             * 正确的调用方法如下,当指定参数时,必须指定所有相关的参数
             * return $this->smarty->fetch($sourceFile, null, null, $data, false);
             */

            return $template->fetch();    // 所有参数均从 $template 对象继承
        } else {
            /*
             * 源代码错误!
             * $template->display($sourceFile);
             * 正确的调用方法如下,当指定参数时,必须指定所有相关的参数
             * $this->smarty->display($sourceFile, null, null, $data, false);
             */

            $template->display();    // 所有参数均从 $template 对象继承
        }
    }
}

                   

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn