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


本文整理自网络,侵删。

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

相关阅读 >>

dedecms后台添加编辑文章空白的解决方法

dedecms短标题标签调用与字数修改的方法

dedecms首页幻灯片显示问题帮助教程

织梦DedeCMS安装教程 织梦cms怎么使用

dedecms集成财付通支付接口

织梦(dedecms)循环调用多级子栏目如二级栏目下三级栏目

详解织梦DedeCMS的安全问题优化解决办法(安全设置)

dedecms导航判断当前选中样式的方法

织梦DedeCMS不能下载远程图片实现图片本地化解决方法

dede频道列表页栏目排序实例详解

更多相关阅读请进入《织梦DedeCMS》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...