设为首页收藏本站

郑州科技市场

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1413|回复: 0
打印 上一主题 下一主题

dedecms5.7一级分类、二级分类同时调用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-10 16:16:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

直接上图:


调用方法:

  1. <font color="#454545"><font face="tahoma, helvetica, arial"><font style="font-size: 14px">        {dede:channelartlist typeid='2'}
  2.         <li class="First"><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></li>
  3.                 {dede:channel type='son' noself='yes'}
  4.                 <li class="Second"><a href="[field:typelink/]">[field:typename/]</a></li>
  5.                 {/dede:channel}
  6.         {/dede:channelartlist}</font></font></font>
复制代码

此方法直接使用会出现一个问题:当其中一个分类没有子分类的时候,会在其子分类的位置显示出所有的一级分类

解决办法:去掉include/taglib/channel.lib.php中以下内容即可解决

    //如果用子栏目模式,当没有子栏目时显示同级栏目

  1. <font color="#454545"><font face="tahoma, helvetica, arial"><font style="font-size: 14px"><p>    if($type=='son' && $reid!=0 && $totalRow==0)</p><p>    {</p><p>        $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath</p><p>            FROM `#@__arctype` WHERE reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line ";</p><p>        $dsql->SetQuery($sql);</p><p>      $dsql->Execute();</p><p>    }</p></font></font></font>
复制代码

————————————————————————————————————————————————————————————


以下方法在5.6版本适用,后来升级到5.7V后发现用不了,具体不知道啥原因,有兴趣的朋友可以研究一下:

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


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

在模板里用
{dede:channel function='getProductTree(2)'}{/dede:channel} 
调用即可。这里getProductTree(2)中的 2 是产品展示的栏目ID。如果你的是其他的,请作相应修改。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|郑州二手手机|郑州二手电脑|郑州二手笔记本|郑州科技市场 ( 豫ICP备11013749号  

GMT+8, 2025-1-22 22:48 , Processed in 0.233163 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2016 Comsenz Inc.

快速回复 返回顶部 返回列表