Smarty作为最成熟使用最多的模板之一,相信大家都比较熟悉。如果还有的同学不是很熟悉,可以参考 ::getPathOfAlias('application.extensions.smarty') . DIRECTORY_SEPARATOR . 'Smarty.class.php');define('SMARTY_VIEW_DIR', Yii::getPathOfAlias('application.views'));class CSmarty extends Smarty { const DIR_SEP = DIRECTORY_SEPARATOR; function __construct() { parent::__construct(); $this -> template_dir = SMARTY_VIEW_DIR; $this -> compile_dir = SMARTY_VIEW_DIR . self::DIR_SEP . 'template_c'; $this -> caching = true; $this -> cache_dir = SMARTY_VIEW_DIR . self::DIR_SEP . 'cache'; $this -> left_delimiter = ''; $this -> cache_lifetime = 0; // -- 初始全局数据 $this -> assign('base_url', 'http://www.ttall.net'); $this -> assign('index_url', 'http://www.ttall.net/index.php'); } function init() { }}
把上述类放到文件目录:?protected/extensions/
2、配置protected/config/main.php
在该文件中加入如下代码:
dirname(__FILE__).DIRECTORY_SEPARATOR.'..', 'name'=>'易百IT教程网-www.yiibai.com', // preloading 'log' component 'preload'=>array('log'), // autoloading model and component classes 'import'=>array( 'application.models.*', 'application.components.*', 'application.extensions.*', 'application.extensions.smarty.sysplugins.*', ), // application components 'components'=>array( 'user'=>array( // enable cookie-based authentication 'allowAutoLogin'=>true, ), 'smarty'=>array( 'class'=>'application.extensions.CSmarty', ),
3、找到文件protected/components/Controller.php,加入两个方法:
/** * Smarty assign()方法 * */public function assign($key, $value) { Yii::app() -> smarty -> assign($key, $value);}/** * Smarty display()方法 * */public function display($view) { Yii::app() -> smarty -> display($view);}
这样,我们就可以在每一个控制器里直接调用这两个Smarty方法了。