|
由于系统开发 经常会用到多套模板,所以扩展了CI的核心类,不知道是否正确,是否会影响效率
1 在appliction/config/
添加system.php
$config['fw_template'] = 'default';
2 在appliction/config/autoload.php
//自动加载
$autoload['config'] = array('system');
3 在appliction/core/添加
FW_Controller.php
代码为
class FW_Controller extends CI_Controller {
function __construct()
{
parent::__construct();
define('FW_TEMPLATE', $this->config->item('fw_template'));
}
}
定义了默认模板
4 在appliction/core/添加
FW_Loader.php
重写view方法
class FW_Loader extends CI_Loader{
public function view($view, $vars = array(), $return = FALSE)
{
//$view=$this->config->item('template').'/'.$view;
if(defined('FW_TEMPLATE')){
$view=FW_TEMPLATE.'/'.$view;
}
return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return));
}
}
这样在控制器中,就不用写模板路径,
//$this->load->view('default/news_view',$var);//用默认的CI_Controller
$this->load->view('news_view',$var); //用FW_Controller
可以实现 我的目的,不知道这样是否正确,求教
|
|