直接上图:
调用方法:
- <font color="#454545"><font face="tahoma, helvetica, arial"><font style="font-size: 14px"> {dede:channelartlist typeid='2'}
- <li class="First"><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></li>
- {dede:channel type='son' noself='yes'}
- <li class="Second"><a href="[field:typelink/]">[field:typename/]</a></li>
- {/dede:channel}
- {/dede:channelartlist}</font></font></font>
复制代码此方法直接使用会出现一个问题:当其中一个分类没有子分类的时候,会在其子分类的位置显示出所有的一级分类 解决办法:去掉include/taglib/channel.lib.php中以下内容即可解决 //如果用子栏目模式,当没有子栏目时显示同级栏目 - <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文件底部添加如下代码:
- <font color="#454545"><font face="tahoma, helvetica, arial"><font style="font-size: 14px">//树形栏目补充,获取二级,san级,四级栏目列表
- function getProductTree($typeid)
- {
- $linkList = "";
- $dsql = new DedeSql(false);
- $dsql->SetQuery("select ID,typedir,typename,isdefault from #@__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 #@__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 #@__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 #@__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;
- }</font></font></font>
复制代码在模板里用
{dede:channel function='getProductTree(2)'}{/dede:channel}
调用即可。这里getProductTree(2)中的 2 是产品展示的栏目ID。如果你的是其他的,请作相应修改。
|