CI框架主题切换的功能
CI框架主题切换的功能
本人接触到这个框架不就,属于菜鸟 , 公司现在用CI框架做项目 ,老大要做一个主题切换的功能,说明功能的要求我的脑子里瞬间有几个想法.
脑子里最简单的就是设置全局变量
如 :
从数据库里面查找出数据然后使用
后面同事说这样用麻烦 , 这样的话没个方法都要先查下 ,然后替换 world , 因为world 是整个模板的文件 ,改world 意味着该文件夹,从而达到切换的目的
第二个方法
同事CI开发的经验比我老道 ,建议我使用父类建个变量赋值的方法
如下:
先声明
然后赋值
最后调用
这种方法比第一种方法好些,少了调用这步 ,就可以直接用了
但是这种还是不好,老大教我一种更好的方法,改入口文件的 view
假如他的目录是
那么只要在template 拼接这个 world 这个变量就可以达到目的
但是 不要以为 直接在父类 define('viewpath',$world) 或者是 define('viewpath', 'template'.'/'.$world.'/')
这类写法统统错误,园主一开始就是这么干的
正确做法是在 core 的目录建一个MY_loader.php 文件然后
public function view($view, $vars = array(), $return = FALSE) { $CI =& get_instance(); $res = $CI->db->where()->get()->row_array(); $mol = json_decode($res['content'],true)['catalog']; return $this->_ci_load(array('_ci_view' => $mol.'/'.$view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return)); }
原来就是设置加载 模板变量里的 view 的路径 , 从而view 显示时就不用那么长的路径,简化了路径
是不是简单了好多 ^_^