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

时间:2021-11-23
类别:教程 - CMS教程

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

在includechannelunit.func.php文件底部添加如下代码: 

/*树形栏目补充,获取二级,san级,四级栏目列表/ 

  1. function getProductTree($typeid)  
  2. {  
  3. $linkList = "";  
  4. $dsql = new DedeSql(false);  
  5. $dsql->SetQuery("select ID,typedir,typename,isdefault from dede_arctype where reID = '$typeid' order by sortrank");  
  6. $dsql->Execute();  
  7. while($row=$dsql->GetObject())  
  8. {  
  9.    $typelink = GetTypeUrl($row->id,MfTypedir($row->typedir),$row->isdefault,$row->defaultname,$row->ispart,$row->namerule2,$row->moresite,$row->siteurl,$row->sitepath);  
  10.    $linkList .= " <div class="firsttype"><a href="$typelink"><b>".$row->typename."</b></a></div> ";  
  11.    $linkList .= getSonClass($row->ID);  
  12. }  
  13. $dsql->Close();  
  14. return $linkList;  
  15. }  
  16. //获得小类栏目链接  
  17. function getSonClass($parentid)  
  18. {  
  19. $linkList = "";  
  20. $dsql = new DedeSql(false);  
  21. $dsql->SetQuery("Select ID,typedir,typename,isdefault From dede_arctype where reID='$parentid' order by sortrank");  
  22. $dsql->Execute($parentid);  
  23. while($row=$dsql->GetObject($parentid))  
  24. {  
  25.    $typelink = GetTypeUrl($row->id,MfTypedir($row->typedir),$row->isdefault,$row->defaultname,$row->ispart,$row->namerule2,$row->moresite,$row->siteurl,$row->sitepath);  
  26.    $linkList .= "<li class="secondtype"><a href="$typelink">".$row->typename."</a></li> ";  
  27.    $linkList .= getSonClass2($row->ID);  
  28. }  
  29. return $linkList;  
  30. }  
  31. function getSonClass2($parentid)  
  32. {  
  33. $linkList = "";  
  34. $dsql = new DedeSql(false);  
  35. $dsql->SetQuery("Select ID,typedir,typename,isdefault From dede_arctype where reID='$parentid' order by sortrank");  
  36. $dsql->Execute($parentid);  
  37. while($row=$dsql->GetObject($parentid))  
  38. {  
  39.    $typelink = GetTypeUrl($row->id,MfTypedir($row->typedir),$row->isdefault,$row->defaultname,$row->ispart,$row->namerule2,$row->moresite,$row->siteurl,$row->sitepath);  
  40.    $linkList .= "<li class="thirdtype"><a href="$typelink">".$row->typename."</a></li> ";  
  41.    $linkList .= getSonClass3($row->ID);  
  42. }  
  43. return $linkList;  
  44. }  
  45. function getSonClass3($parentid)  
  46. {  
  47. $linkList = "";  
  48. $dsql = new DedeSql(false);  
  49. $dsql->SetQuery("Select ID,typedir,typename,isdefault From dede_arctype where reID='$parentid' order by sortrank");  
  50. $dsql->Execute($parentid);  
  51. while($row=$dsql->GetObject($parentid))  
  52. {  
  53.    $typelink = GetTypeUrl($row->id,MfTypedir($row->typedir),$row->isdefault,$row->defaultname,$row->ispart,$row->namerule2,$row->moresite,$row->siteurl,$row->sitepath);  
  54.    $linkList .= "<li class="fourthtype"><a href="$typelink">".$row->typename."</a></li> ";  
  55. }  
  56. return $linkList;  
  57. }  

/*树形栏目补充*/ 

---------------------------------------------------------------------------- 

2、在模板里用 

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

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

    收藏