博客之前做网站的时候经常会遇到二级菜单、三级菜单。了解dede的人都知道从5.5版本开始都有二级菜单的调用方法了,网上也有不少的教程文章。不过这个调用需要修改dede源码的二级菜单样式。个人感觉不是很方便,所以在这里博主整理了一些比较实用的调用方法分享给大家,也希望对大家有所帮助。
一、先说下顶级菜单的调用吧
该类栏目的dedecms调用方法比较简单,如下:
{dede:channel type='top' currentstyle="~typename~ "}
[field:typename/]
{/dede:channel}
注释(参数): typeid='0' 栏目ID; reid = '0' 上级栏目ID; row = '100' 调用栏目数; col = '1' 分多少列显示(默认为单列);type = 'son | sun' son表示下级栏目,self表示同级栏目,top顶级栏目; currentstyle = '' 应用样式"。
这种方法会把后台的顶级栏目都调用出来,如果想有些栏目不被调用出来,可以加上参数typeid=‘所要调用栏目的id’。对于调用指定的栏目可以用下面的标签:
{dede:type typeid=‘指定栏目的id’}[field:typename /]{/dede:type}
二、 带有二级子栏目的栏目的调用,这类网站用于信息分类比较多的网站,其样式图如下:
这种栏目是比较常见的,其dedecms调用代码如下:
{dede:channelartlist typeid='1,2,3,6,7,10,8,11' row='10'} //typeid=‘顶级栏目的id’
{dede:field name='typename'/}
{dede:channel type='son' noself='yes'}
[field:typename/]
{/dede:channel}
{/dede:channelartlist}
对于没有子栏目的顶级栏目可以使用调用指定栏目的标签:
{dede:type typeid=‘指定栏目的id’}
[field:typename /]
{/dede:type}
三、有三级子栏目的调用代码,这类导航适用于商城等,其样式图如下:
对于这种栏目的调用代码如下:
{dede:type typeid='2'}[field:typename/]{/dede:type} //顶级栏目的调用
{dede:channelartlist typeid='top' typeid='2'}
{dede:field name='typename'/} //二级和三级的调用这里typeid='子栏目所属的顶级栏目的id'
{dede:sql sql='Select * from dede_arctype where reid=~id~ ORDER BY id limit 0,20'}
[field:typename/]
{/dede:sql}
{/dede:channelartlist}
完整实例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>index</title>
<link href="{dede:global.cfg_templets_skin/}/images/css.css" rel="stylesheet" type="text/css" />
</head>
<body>
<li>
{dede:type typeid='53'}<a href='[field:typelink/]' class="depth_1">顶级[field:typename/]</a>{/dede:type}
<ul class="children" style="display:block; ">
{dede:channelartlist typeid='top' typeid='53'}
<li><h3 ><a href='{dede:field name='typeurl'/}' class="depth_2"><span class="icon10"></span>二级{dede:field name='typename'/}</a></h3> <ul>
{dede:sql sql='Select * from dede_arctype where reid=~id~ ORDER BY id limit 00,20'}
<li><a href="[field:typedir function='str_replace("{cmspath}","",@me)'/]" class="depth_3">三级[field:typename/]</a></li>
{/dede:sql}
</ul>
</li>
{/dede:channelartlist}
</ul>
</li>
</body>
</html>