首页 > CMS > 织梦DEDE > 正文

dedecms 栏目树形无限级菜单实现方法

2024-07-12 08:43:13
字体:
来源:转载
供稿:网友

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

  1. -----------------------------------------------------  
  2. /*树形栏目补充,获取二级,san级,四级栏目列表/ 
  3. function getproducttree($typeid)  
  4.  
  5. $linklist = "";  
  6. $dsql = new dedesql(false);  
  7. $dsql->setquery("select id,typedir,typename,isdefault from dede_arctype where reid = '$typeid' order by sortrank");  
  8. $dsql->execute();  
  9. while($row=$dsql->getobject())  
  10.  
  11.    $typelink = gettypeurl($row->id,mftypedir($row->typedir),$row->isdefault,$row->defaultname,$row->ispart,$row->namerule2,$row->moresite,$row->siteurl,$row->sitepath);  
  12.    $linklist .= "n<div class="firsttype"><a href="$typelink"><b>".$row->typename."</b></a></div>nn";  
  13.    $linklist .= getsonclass($row->id);  
  14.  
  15. $dsql->close();  
  16. return $linklist;  
  17.  
  18. //获得小类栏目链接 
  19. function getsonclass($parentid)  
  20.  
  21. $linklist = "";  
  22. $dsql = new dedesql(false);  
  23. $dsql->setquery("select id,typedir,typename,isdefault from dede_arctype where reid='$parentid' order by sortrank");  
  24. $dsql->execute($parentid);  
  25. while($row=$dsql->getobject($parentid))  
  26.  
  27.    $typelink = gettypeurl($row->id,mftypedir($row->typedir),$row->isdefault,$row->defaultname,$row->ispart,$row->namerule2,$row->moresite,$row->siteurl,$row->sitepath);  
  28.    $linklist .= "<li class="secondtype"><a href="$typelink">".$row->typename."</a></li>n";  
  29.    $linklist .= getsonclass2($row->id);  
  30.  
  31. return $linklist;  
  32.  
  33. function getsonclass2($parentid)  
  34.  
  35. $linklist = "";  
  36. $dsql = new dedesql(false);  
  37. $dsql->setquery("select id,typedir,typename,isdefault from dede_arctype where reid='$parentid' order by sortrank");  
  38. $dsql->execute($parentid);  
  39. while($row=$dsql->getobject($parentid))  
  40.  
  41.    $typelink = gettypeurl($row->id,mftypedir($row->typedir),$row->isdefault,$row->defaultname,$row->ispart,$row->namerule2,$row->moresite,$row->siteurl,$row->sitepath);  
  42.    $linklist .= "<li class="thirdtype"><a href="$typelink">".$row->typename."</a></li>n";  
  43.    $linklist .= getsonclass3($row->id);  
  44.  
  45. return $linklist;  
  46.  
  47. function getsonclass3($parentid)  
  48.  
  49. $linklist = "";  
  50. $dsql = new dedesql(false);  
  51. $dsql->setquery("select id,typedir,typename,isdefault from dede_arctype where reid='$parentid' order by sortrank");  
  52. $dsql->execute($parentid);  
  53. while($row=$dsql->getobject($parentid))  
  54. {  //开源软件:Vevb.com 
  55.    $typelink = gettypeurl($row->id,mftypedir($row->typedir),$row->isdefault,$row->defaultname,$row->ispart,$row->namerule2,$row->moresite,$row->siteurl,$row->sitepath);  
  56.    $linklist .= "<li class="fourthtype"><a href="$typelink">".$row->typename."</a></li>n";  
  57.  
  58. return $linklist;  
  59.  
  60. /*树形栏目补充*/  
  61. ----------------------------------------------------------------------------  

在模板里用:

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

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表