<form id="jzrjp"></form>
      <address id="jzrjp"></address><noframes id="jzrjp">

      <sub id="jzrjp"><listing id="jzrjp"><menuitem id="jzrjp"></menuitem></listing></sub><sub id="jzrjp"><address id="jzrjp"><listing id="jzrjp"></listing></address></sub>

      PHPCMS V9 subcat函數在分站調不出子欄目的解決方法

      發布時間:2014-10-06 11:45:19     來源:     閱讀:

      這是合肥笑緣信息技術有限公司在做網站的時候遇到的一個不起眼但卻很不好解決的問題。

      先把出問題的代碼貼出來:

      1. {loop subcat($catid$k $v}  
      2.     {php $subcatid[] = $k;}  
      3. {/loop}  
      4. {php $subcatid  = implode(','$subcatid);}  
      5.     $sql="SELECT * from ".gettablepre()."enpicture where status=99 and catid in ($subcatid) order by id DESC";  
      6. ?>  
      7. {pc:get sql="$sql" page="$page" return="data"}  
      8.     {loop $data $r}  
      9.         class="cat_pic_bd">  
      10.         "{$r[url]}">class="picborder2">"{thumb($r[thumb],200,150)}" width="200" height="150" />     
      11. {$r[title]}

      12. {/loop}  
      13. {/pc}  
      14.  
      15.         
        
      • 這段代碼的功能是把當前欄目下所有子欄目的信息調取并顯示出來,但是,不管怎么調取都調取不出來。

         

        echo var_dump(subcat($catid))返回NULL;

        我拉個擦來去。。。郁悶了,無奈,懷疑是不是subcat()函數參數傳遞不對,于是打開phpcms/libs/functions/global.func.php找subcat()函數,代碼如下:

        1. /** 
        2.  * 獲取子欄目 
        3.  * @param $parentid 父級id 
        4.  * @param $type 欄目類型 
        5.  * @param $self 是否包含本身 0為不包含 
        6.  * @param $siteid 站點id 
        7.  */  
        8. function subcat($parentid = NULL, $type = NULL,$self = '0'$siteid = '') {  
        9.     if (empty($siteid)) $siteid = get_siteid();  
        10.     $category = getcache('category_content_'.$siteid,'commons');  
        11.     foreach($category as $id=>$cat) {  
        12.         if($cat['siteid'] == $siteid && ($parentid === NULL || $cat['parentid'] == $parentid) && ($type === NULL || $cat['type'] == $type)) $subcat[$id] = $cat;  
        13.         if($self == 1 && $cat['catid'] == $parentid && !$cat['child'])  $subcat[$id] = $cat;  
        14.     }  
        15.     return $subcat;  
        16. }  

        傻眼了,果然,參數傳遞不正確!沒有傳遞欄目類型和站點id,而在開啟站群功能后,分站必須要傳遞$siteid參數。修改后的代碼如下:
        1. {loop subcat($catid,0,0,$siteid$k $v}  
        2.     {php $subcatid[] = $k;}  
        3. {/loop}  
        4. {php $subcatid  = implode(','$subcatid);}  
        5.     $sql="SELECT * from ".gettablepre()."enpicture where status=99 and catid in ($subcatid) order by id DESC";  
        6. ?>  
        7. {pc:get sql="$sql" page="$page" return="data"}  
        8.     {loop $data $r}  
        9.         class="cat_pic_bd">  
        10.         "{$r[url]}">class="picborder2">"{thumb($r[thumb],200,150)}" width="200" height="150" /
        11. {$r[title]}

        12. {/loop}  
        13. {/pc}  
        14.         
      • 完美解決問題!

         

         

        合肥網絡公司找笑緣信息技術,歡迎交流!

      • 電話咨詢

      • 400-670-1990
      • 18805695870
      一区二区三区鲁丝不卡

        <form id="jzrjp"></form>
          <address id="jzrjp"></address><noframes id="jzrjp">

          <sub id="jzrjp"><listing id="jzrjp"><menuitem id="jzrjp"></menuitem></listing></sub><sub id="jzrjp"><address id="jzrjp"><listing id="jzrjp"></listing></address></sub>