通用方法解决dedecms导航调用二级、三级栏目菜单

博客之前做网站的时候经常会遇到二级菜单、三级菜单。了解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>

 

 

 

你可能感兴趣的:(dedecms)