本帖最后由 u012226939 于 2014-09-11 17:48:12 编辑

解决方案 »

  1.   

    上面这段代码里面在逻辑上就没有discuz这个变量存在,所以俺就是纳闷,他为啥能加载呢
      

  2.   

    $mod = !in_array(C::app()->var['mod'], $modarray) ? 'index' : C::app()->var['mod'];
    没有mod参数就是mod=index;
    你到/source/module/forum下就能找到forum_index.php
    这就是首页的后台文件
    在最后include template('diy:forum/discuz:'.$gid);
    就是引入了discuz.html
      

  3.   

    嗯,你说的真明白,你肯定能获得分了,不过我还有个问题,能解答下吗?$mod = !in_array(C::app()->var['mod'], $modarray) ? 'index' : C::app()->var['mod'];句中的"C::app()->var['mod']"我不理解,这里的双冒号是类中的静态方法吧?还是个啥?如是静态方法,那app()是怎么来的?我搜了一下var这个数组没有呢,是不是我理解错了.肯定给你分的.骗你小狗.
      

  4.   

    C类:source/class/class_core.php,在文件最下面,继承了core类,就在本文件的上面,在core类的上面调用了C::creatapp();此静态方法用到了discuz_application::instance();
    discuz_application类:source/class/discuz/discuz_application.php,这个类是核心类,所有入口文件调用的其实就是它,里面定义了$var数组,并有一句$this->var = & $_G;,我想$_G不会不认识吧,所以$_G['mod']也能获取mod的参数值