DedeCms获取任意栏目N级列表链接树形菜单的方法

所属分类: CMS教程 / dedecms 阅读数: 1314
收藏 0 赞 0 分享

DedeCms获取任意栏目N级列表链接树形菜单,小编提示,下边的修改方法,适用于DedeCMS默认的表前缀,如果你安装的时候修改了,请注意修改。

在\include\channelunit.func.php文件底部添加如下代码:

/*树形栏目补充,获取二级,san级,四级栏目列表/ 
 
function getProductTree($typeid)
 
{
 
$linkList = "";
 
$dsql = new DedeSql(false);
 
$dsql->SetQuery("select ID,typedir,typename,isdefault from dede_arctype where reID = '$typeid' order by sortrank");
 
$dsql->Execute();
 
while($row=$dsql->GetObject())
 
{
 
   $typelink = GetTypeUrl($row->id,MfTypedir($row->typedir),$row->isdefault,$row->defaultname,$row->ispart,$row->namerule2,$row->moresite,$row->siteurl,$row->sitepath);
 
   $linkList .= "\n<div class=\"firsttype\"><a href=\"$typelink\"><b>".$row->typename."</b></a></div>\n\n";
 
   $linkList .= getSonClass($row->ID);
 
}
 
$dsql->Close();
 
return $linkList;
 
}
 
//获得小类栏目链接
 
function getSonClass($parentid)
 
{
 
$linkList = "";
 
$dsql = new DedeSql(false);
 
$dsql->SetQuery("Select ID,typedir,typename,isdefault From dede_arctype where reID='$parentid' order by sortrank");
 
$dsql->Execute($parentid);
 
while($row=$dsql->GetObject($parentid))
 
{
 
   $typelink = GetTypeUrl($row->id,MfTypedir($row->typedir),$row->isdefault,$row->defaultname,$row->ispart,$row->namerule2,$row->moresite,$row->siteurl,$row->sitepath);
 
   $linkList .= "<li class=\"secondtype\"><a href=\"$typelink\">".$row->typename."</a></li>\n";
 
   $linkList .= getSonClass2($row->ID);
 
}
 
return $linkList;
 
}
 
function getSonClass2($parentid)
 
{
 
$linkList = "";
 
$dsql = new DedeSql(false);
 
$dsql->SetQuery("Select ID,typedir,typename,isdefault From dede_arctype where reID='$parentid' order by sortrank");
 
$dsql->Execute($parentid);
 
while($row=$dsql->GetObject($parentid))
 
{
 
   $typelink = GetTypeUrl($row->id,MfTypedir($row->typedir),$row->isdefault,$row->defaultname,$row->ispart,$row->namerule2,$row->moresite,$row->siteurl,$row->sitepath);
 
   $linkList .= "<li class=\"thirdtype\"><a href=\"$typelink\">".$row->typename."</a></li>\n";
 
   $linkList .= getSonClass3($row->ID);
 
}
 
return $linkList;
 
}
 
function getSonClass3($parentid)
 
{
 
$linkList = "";
 
$dsql = new DedeSql(false);
 
$dsql->SetQuery("Select ID,typedir,typename,isdefault From dede_arctype where reID='$parentid' order by sortrank");
 
$dsql->Execute($parentid);
 
while($row=$dsql->GetObject($parentid))
 
{
 
   $typelink = GetTypeUrl($row->id,MfTypedir($row->typedir),$row->isdefault,$row->defaultname,$row->ispart,$row->namerule2,$row->moresite,$row->siteurl,$row->sitepath);
 
   $linkList .= "<li class=\"fourthtype\"><a href=\"$typelink\">".$row->typename."</a></li>\n";
 
}
 
return $linkList;
 
}
/*树形栏目补充*/ 

2、在模板里用

{dede:channel function='getProductTree(2)'}{/dede:channel}  

调用即可。这里getProductTree(2)中的 2 是产品展示的栏目ID。如果你的是其他的,请作相应修改。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

使用Dedecms中七个容易忽略的安全细节介绍

dede也许站长都会用了.但是有不少的细节和经验还是要注意的
收藏 0 赞 0 分享

让Dedecms自带搜索实现全文检索(支持标题与内容)

Dedecms 5.5 5.6默认的模糊搜索只能根据网站文章的名称进行搜索,无法搜索到文章内部信息,下面讲一下如何让Dedecms自带搜索实现全文检索
收藏 0 赞 0 分享

织梦DedeCms v5.6/5.7 新图集页面增加图片下载功能

织梦DedeCms v5.6/5.7 新图集页面增加图片下载功能,其实就是加个右键下载提示功能
收藏 0 赞 0 分享

dedecms5.7sp1评论添加字段的实现方法

有时候我们需要对评论添加字段,让用户更喜欢留言,有类似需要的朋友可以参考下
收藏 0 赞 0 分享

织梦CMS采集时keywords字段无法添加过滤规则的解决方法

有朋友反馈,采集规则编写时,需要对keywords进行剔除,使用 {dede:trim replace=''}(.*){/dede:trim} 过滤规则无效。查看了下,附上解决办法
收藏 0 赞 0 分享

dedecms实现大图showphoto.htm输出图集内容简介方法

dedecms实现大图showphoto.htm输出图集内容简介方法,需要的朋友可以参考下
收藏 0 赞 0 分享

为DedeCMS换上精美多样的提示信息窗口

为DedeCMS换上精美多样的提示信息窗口 用到的开源项目:DedeCMS ,artdialog 步骤
收藏 0 赞 0 分享

DedeCMS Pagetitle 标记使用实例教程

DedeCMS Pagetitle 标记使用实例教程 【Pagetitle 标记】 功能说明:表示获取文档的分页标题 适用范围:仅文档模板
收藏 0 赞 0 分享

织梦DedeCMS实现 三级栏目_二级栏目_一级栏目_网站名称 的效果代码

用这个办法,可以实现
收藏 0 赞 0 分享

dedecms获取文档当前栏目所在目录链接URL

dedecms内容页调用当前栏目其实用下来是调用不出来的,{dede:field.typename/}是有效的,可是 {dede:field.typeurl/}却调不出文档当前栏目所在目录链接URL
收藏 0 赞 0 分享
查看更多