Heim  >  Artikel  >  php教程  >  Yii的smarty插件 ESmartyViewRenderer 中的错误更正

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

PHP中文网
PHP中文网Original
2016-05-25 17:13:08875Durchsuche

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 对象继承
        }
    }
}

                   

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn