• <optgroup id="wq4mf"></optgroup>

    1. VIP福利
      主頁 > 建站問題 > 織夢技巧 > edeCMS織夢欄目頁/文章詳情頁獲取頂級欄目名稱及鏈接url方法

      edeCMS織夢欄目頁/文章詳情頁獲取頂級欄目名稱及鏈接url方法

      我們使用DedeCMS織夢開發網站時,經常會碰到需要調用當前頂級欄目名稱,而織夢默認{dede:field name=typename /} 只可以獲取當前欄目的名稱,而不是當前欄目頂級欄目名稱。 方法一: { dede : field . typeid runphp = yes } $ID = @ me ; $sql = SELECT * FROM `dede_arctype` WHERE id= $ID ; $query = mysql_query ( $sql ) ; $row = mysql_fe […]



      我們使用DedeCMS織夢開發網站時,經常會碰到需要調用當前頂級欄目名稱,而織夢默認{dede:field name='typename' /} 只可以獲取當前欄目的名稱,而不是當前欄目頂級欄目名稱。

      方法一:

      1. {dede:field.typeid runphp='yes'}
      2. $ID = @me; $sql = "SELECT * FROM `dede_arctype` WHERE id=$ID";
      3. $query = mysql_query($sql);$row=mysql_fetch_array($query); 
      4. $relID = "$row[reid]"; $topID="$row[topid]"; 
      5. if($relID == 0) {@me = $row[typename];}
      6. else{$sql = "SELECT `typename` FROM `dede_arctype` WHERE id=$topID";
      7. $query = mysql_query($sql);$row=mysql_fetch_array($query); 
      8. @me = $row[typename];}{/dede:field.typeid}

      方法二(推薦):

      修改 include/helpers/extend.helper.php 結尾增加:

      1. /**
      2. * 獲取一個類目的頂級欄目
      3. * @param string $tid 欄目 ID
      4. * @return string
      5. */
      6. if ( ! function_exists('gettoptype'))
      7. {
      8. function gettoptype($tid,$action)
      9. {
      10. global $dsql,$cfg_Cs;
      11. if(!is_array($cfg_Cs))
      12. {
      13. require_once(DEDEDATA."/cache/inc_catalog_base.inc");
      14. }
      15. if(!isset($cfg_Cs[$tid][0]) || $cfg_Cs[$tid][0]==0)
      16. {
      17. $topid = $tid;
      18. }
      19. else
      20. {
      21. $topid = GetTopid($cfg_Cs[$tid][0]);
      22. }
      23. $row = $dsql->GetOne("SELECT * FROM `dede_arctype` WHERE id=$topid");
      24. $toptypename = $row['typename'];
      25. $toptypeurl = $topid;
      26. if($action=='id') return $topid;
      27. if($action=='name') return $toptypename;
      28. if($action=='link') return GetOneTypeUrlA($row);
      29. }
      30. }

      織夢頂級欄目鏈接,名稱及 id 調用代碼:

      1. {dede:field.typeid function="gettoptype(@me,id)"/}   //id
      2. {dede:field.typeid function="gettoptype(@me,name)"/} //名稱
      3. {dede:field.typeid function="gettoptype(@me,link)"/} //鏈接

      方法三(推薦):
      打開include/helpers/extend.helper.php,添加一個函數:

      1. /**
      2.      *  獲取指定欄目id的頂級欄目的名稱
      3.      * @return     string
      4.      */
      5.     if ( ! function_exists('getTopChannelName'))
      6.     {
      7.     function getTopChannelName($id) {
      8.        global $dsql;
      9.             $typeinfo = $dsql->GetOne("SELECT * FROM `dede_arctype` WHERE id='{$id}'");
      10.             if($typeinfo['reid']==0) return $typeinfo['typename'];
      11.             else return getTopChannelName($typeinfo['reid']);
      12.     }
      13.     }

      在列表頁這么使用:{dede:field name='id' function='getTopChannelName(@me)'/}

      在內容頁這么使用:{dede:field name='typeid' function='getTopChannelName(@me)'/}

      附帶獲取頂級欄目的url,打開include/helpers/extend.helper.php,添加一個函數:

      1.  /**
      2.      *  獲取指定欄目id的頂級欄目的url
      3.      * @return     string
      4.      */
      5.     if ( ! function_exists('getTopChannelUrl'))
      6.     {
      7.     function getTopChannelUrl($id) {
      8.        global $dsql;
      9.             $typeinfo = $dsql->GetOne("SELECT * FROM `dede_arctype` WHERE id='{$id}'");
      10.             if($typeinfo['reid']==0) return GetOneTypeUrlA($typeinfo);
      11.             else return getTopChannelUrl($typeinfo['reid']);
      12.     }
      13.     }

      在列表頁這么使用:{dede:field name='id' function='getTopChannelUrl (@me)'/}

      在內容頁這么使用:{dede:field name='typeid' function='getTopChannelUrl(@me)'/}


      說點什么吧
      • 全部評論(0
        還沒有評論,快來搶沙發吧!

      韩国免费A级作爱片 - 视频 - 在线观看 - 电影影院 - 品赏网