DedeCms获取栏目列表菜单的方法

想给自己的网站添加一个网站导航栏目,大家知道,这需要我们调用各个栏目的菜单,而且是多级菜单。DEDECMS好像没有提供这一标签,只好动手进行尝试,经过一些努力,还真得实现了。

想给自己的网站添加一个网站导航栏目,大家知道,这需要我们调用各个栏目的菜单,而且是多级菜单。织梦模板好像没有提供这一标签,只好动手进行尝试,经过一些努力,还真得实现了,方法如下:

首先,请大家在\include\channelunit.func.php文件底部添加如下代码:
-----------------------------------------------------
/*树形栏目补充,获取二级,san级,四级栏目列表/
function getProductTree($typeid)
{
$linkList = "";
$dsql = new DedeSql(false);
$dsql->SetQuery("select ID,typedir,typename,isdefault from dede_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 dede_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 dede_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 dede_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;
}
/*树形栏目补充*/
----------------------------------------------------------------------------
2、在模板里用
{dede:channel function='getProductTree(2)'}{/dede:channel} 
调用即可。这里getProductTree(2)中的 2 是产品展示的栏目ID。如果你的是其他的,请作相应修改。

最后,我还要提示大家注意一下:本文中的修改方法,只适用于织梦模板默认的表前缀,如果你安装的时候修改了,请注意修改。

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

关于面包屑导航栏目链接相对路径的修改方法 好吧,自己解决了,现在写出来,希望可以帮到有同样问题的人。 找到/include/typelink.class.php 然后找到下面代码,大概在196行的位置 function GetOneTypeLink($typeinfos) { $typepage = $this-GetOneTypeUrl($
织梦后台默认生成更新RSS文件是按照网站栏目生成告诉用户每个栏目的RSS订阅地址,保存在data目录下,按分类生成很适合栏目或栏目文章较多的dedecms站点,小型CMS站点偏向于生成一个全站的RSS 文件,下面的方法可以实现dedecms只生成一个rss.xml文件夹保存于
有时候,我们在用dedecms建网站的时候,在图片集内容页需要调用当前文章的所有图片出来,这个时候就需要在内容页吧网站里面的所有图片都调用出来了,该怎么做呢?下面看具体步骤: 第一步: 打开include/extend.func.php,在后面加入以下代码 复制代码 functi
dedecms获得某篇文章内容的几种方法,在这里给大家总结了以下三种方法: 1. 使用SQL {dede:sql sql=Select body from `dede_addonarticle` where aid=146} [field:body/] {/dede:sql} 2.使用arclist, 用idlist获取,aid 是没用的,在首页记得要获取typeid,
本文实例讲述了dedecms删除系统自定义变量的方法。分享给大家供大家参考。具体实现方法如下: 一、问题: 之前添加了个联系电话的系统变量,选错了变量类型,结果电话里面要是出现-就显示不全了,很难看,这样的就要删除了重来,那么织梦怎么删除添加的变量呢。
简略标题调用标签: 独立使用标签,如:内容页、title {dede:field.shorttitle/} 嵌套使用标签,如:{dede:arclist}{dede:list} [field:shorttitle/] 当有简略标题时显示简略标题,没有简略标题时显示正标题: {dede:field name=array runphp=yes} if(@me[sho