DedeCMS如何通过顶级栏目获取栏目树
发布:smiling 来源: PHP粉丝网 添加日期:2014-11-11 22:37:24 浏览: 评论:0
最近在研究织梦的系统,导航栏为显示顶级目录,但每点开一个顶级目录下显示,左边是顶级栏目下的所有栏目的栏目目录树,右边是这个顶级栏目的新闻列表,如下图:
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 `#@__arctype` where id='$id' "; /***通过ID查询信息SQL语句
- $dsql->SetQuery($sql);
- $dsql->Execute();
- while($row = $dsql->GetArray())
- {
- if(!emptyempty($row['topid'])) ---------如果TOPID非空说明接数的参数ID不是顶级栏目的ID,那就是次栏目的ID了。
- { $sid=$row['topid'];} ---------那么就可以让$SID被赋值为这个ID的顶级栏目的ID是什么,TOPID
- else { $sid=$row['id'];} -------- 否则就是顶级栏目的ID
- }
- $query = "Select * From `#@__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 `#@__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)" /}
Tags: DedeCMS栏目顶级 DedeCMS栏目树
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)