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

        

         是不是简单了好多  ^_^

     

  • 相关阅读:
    转 MySQL 日期类型详解
    ServiceStack.OrmLite 笔记9 -code first 必须的代码优先
    ServiceStack.OrmLite 笔记8 -还是有用的姿势
    ServiceStack.OrmLite 学习笔记7-复杂点的使用1
    ServiceStack.OrmLite 6 学习笔记 查
    ServiceStack.OrmLite 笔记5 改
    ServiceStack.OrmLite 笔记4 删
    ServiceStack.OrmLite 学习笔记3 建表
    ServiceStack.OrmLite 笔记2 -增
    ServiceStack.OrmLite 笔记
  • 原文地址:https://www.cnblogs.com/liubaoqing/p/6909754.html
Copyright © 2020-2023  润新知