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 显示时就不用那么长的路径,简化了路径

    

     是不是简单了好多  ^_^

 

原文地址:https://www.cnblogs.com/liubaoqing/p/6909754.html