好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

DedeCMS如何通过顶级栏目获取栏目树 - DeDecms

DedeCMS如何通过顶级栏目获取栏目树

最近在研究织梦的系统,导航栏为显示顶级目录,但每点开一个顶级目录下显示,左边是顶级栏目下的所有栏目的栏目目录树,右边是这个顶级栏目的新闻列表,如下图:

DedeCMS如何通过顶级栏目获取栏目树

每点一个顶级栏目可以在页中获得所点栏目的所有信息,包括ID,typename等等栏目的信息.

{dede:field name='id' /}

这个就是得到当然页当前栏目的ID,如果当然点的是顶级栏目的话,这个ID就是TOPID了,如果点的是顶级栏目下的二级或三级栏目这个ID就不是TOPID了,这样就需要对这个ID进行判断一下,废话少说,直接在common.func.php中添加一函数,函数如下:

function  gtype( $id )  {       global   $dsql ;            global   $dsqls ;       $tags  =  '' ;       $sql  =  "Select * From `detest_arctype` where id='$id' " ;           /***通过ID查询信息SQL语句       $dsql ->SetQuery( $sql );       $dsql ->Execute();        while ( $row  =  $dsql ->GetArray())        {                     if (! empty empty ( $row [ 'topid' ])) ---------如果TOPID非空说明接数的参数ID不是顶级栏目的ID,那就是次栏目的ID了。          {  $sid = $row [ 'topid' ];}    ---------那么就可以让$SID被赋值为这个ID的顶级栏目的ID是什么,TOPID           else  {  $sid = $row [ 'id' ];}   -------- 否则就是顶级栏目的ID      }       $query  =  "Select * From `detest_arctype` where topid=reid and topid='$sid' " ;       $dsql ->Execute( 'type' , $query );       while ( $row  =  $dsql ->GetArray( 'type' ))    -----二级栏目信息        {            $idd = $row [ 'id' ];           $link = GetOneTypeUrlA( $row );     -------栏目的连接           $querys =  "Select * From `detest_arctype` where reid=" . $row [ 'id' ]. " and topid='$sid' " ;           $dsql ->SetQuery( $querys );           $dsql ->Execute();           $tag = '' ;           while ( $rows = $dsql ->GetArray())    -----三级栏目信息              {               $links = GetOneTypeUrlA( $rows );               $tag .= ( $tag == ''  ?  ' <li><a href="' . $links . '" target="_blank"><strong>·</strong>' . $rows [ 'typename' ]. '</a></li>' :  ' <li><a href="' . $links . '" target="_blank"><strong>·</strong>' . $rows [ 'typename' ]. '</a></li>' );               }   //开源软件:phpfensi.com                     $tags .= '<h2><a href=' . $link . '>' . $row [ 'typename' ]. '</a></h2>' . $tag ;    ------有序的排起来      }       return   $tags ;    } 

最后在list_article.htm 中调些函数:

{dede:field name='id' function="gtype(@me)" /}

查看更多关于DedeCMS如何通过顶级栏目获取栏目树 - DeDecms的详细内容...

  阅读:57次