织梦dedecms同时调用一级分类、二…

来源:互联网 发布:spring面向切面编程 编辑:程序博客网 时间:2024/06/11 00:29

一、如何才能将DEDECMS分类信息中所有的栏目,包括一级和二级全部都调用出来呢。其实,通过dedecms的channelartilist 标签是完全可以实现的,下面就是调用代码:

{dede:channelartlist typeid='1,10,24,35,51,56' //手动把一级栏目的id写好{dede:type}[field:typename/]{/dede:type}
  • {dede:channel type='son' noself='yes'}
  • [field:typename/]
  • {/dede:channel}
{/dede:channelartlist}

通过上面的标签可以调用出所有的栏目
二。直接上图:
dede同时调用一级分类、二级分类
调用方法:

{dede:channelartlist typeid='2'}{dede:field name='typename'/}{dede:channel type='son' noself='yes'}[field:typename/]{/dede:channel}{/dede:channelartlist}

此方法直接使用会出现一个问题:当其中一个分类没有子分类的时候,会在其子分类的位置显示出所有的一级分类
解决办法:去掉include/taglib/channel.lib.php中以下内容即可解决

//如果用子栏目模式,当没有子栏目时显示同级栏目if($type=='son' && $reid!=0 && $totalRow==0){$sql "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepathFROM `#@__arctype` WHERE reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line ";$dsql->SetQuery($sql);$dsql->Execute();}

—————————————————————————————————————————————————————————以下方法在5.6版本适用,后来升级到5.7V后发现用不了,具体不知道啥原因,有兴趣的朋友可以研究一下:
在\include\channelunit.func.php文件底部添加如下代码:

//树形栏目补充,获取二级,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 .= "\ntype\">".$row->typename."\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 .= "".$row->typename."\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 .= "".$row->typename."\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 .= "".$row->typename."\n";}return $linkList;}

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

0 0
原创粉丝点击