|
本帖最后由 sszwei 于 2015-8-9 13:25 编辑
虽然以前玩过CI2.0,但那时候并未深入。
最近在做个项目,觉得CI3.0的VIEWS和KOHANA确实像,所以做了个小功能给需要的朋友
预先HOOK一个post_controller_constructor,以便调用header footer需要的参数
PHP复制代码
$this->CI->views_data = array();/*单页面全局变量,作用于VIEWS*/
复制代码
具体方法自行扩展
再使用post_controller,载入一个LAYOUT
PHP复制代码
$views = array();
$views['header'] = $this->Router->fetch_class() === 'admin' ? 'admin_header' : 'header';
$views['content'] = _is_mobile () ? $this->Router->fetch_class().'/'.$this->Router->fetch_method().'_mobile' : $this->Router->fetch_class().'/'.$this->Router->fetch_method();
$views['footer'] = $this->Router->fetch_class() === 'admin' ? 'admin_footer' : 'footer';
foreach($views as $val) {
$test_val = $this->Router->fetch_class().'/'.$this->Router->fetch_method().'-'.$val;
/*舍弃固定头部/尾部,配置文件内*/
if(in_array($test_val, $this->CI->config->item('website_outdisplay', 'xdd'))) {
continue;
}else{
$val = _is_mobile () ? $val.'_mobile' : $val;
}
$this->CI->load->view($val, $this->CI->views_data);
}
复制代码
毕竟不是非常大的项目 所以例外的header footer还是非常少的,各位也可以在这上面进行扩展改进,只是给个思路。
|
|