博客之前做网站的时候经常会遇到二级菜单、三级菜单。了解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'}   //二级栏目和三级栏目的调用这里typeid='子栏目所属的顶级栏目的id'

  • {dede:field name='typename'/}
    • {dede:sql sql='Select * from dede_arctype where reid=~id~  ORDER BY id limit 0,20'}  //limit 起始三级栏目id  显示栏目的条数

    • [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导航调用二级、三级栏目菜单的更多相关文章

  1. 织梦DedeCMS调用二级子栏目或者多级栏目解决方法

    本文是关于织梦DedeCMS调用多级子栏目的,拿来测试分享下.DEDECMS v5.7,后台已建栏目目录,如下图1所示: 图1 DEDECMS后台栏目结构 现在,我们先来调用顶级栏目"站长新 ...

  2. 织梦DedeCMS调用二级子栏目或者多级栏目的方法

    图2 当前栏目typeid值为3,所以代码如下: {dede:channelartlist typeid='3,3'} <a href="{dede:field name='typeu ...

  3. 织梦(dedecms)循环调用多级子栏目如二级栏目下三级栏目

    本文是关于织梦DedeCMS调用多级子栏目的,拿来分享下. 后台已经建好栏目,对于产品展示栏 栏目导航如下图所示:  复制代码 代码如下: {dede:channelartlist cacheid=' ...

  4. 通用方法解决UITextFiled输入的时候,键盘遮挡问题

    我们在用键盘录入的时候,有可能会遮挡录入框,所以我们应调整UIView的位置,使其不被遮挡.我写了一个通用的方法可以解决这个问题:​​1. [代码][C/C++]代码         - (void) ...

  5. dede调用二级下拉菜单方法

    <div id="menu">    <ul>  {dede:channelartlist typeid='top'  row='6' orderby='s ...

  6. HTML+CSS实现导航栏二级下拉菜单完整代码

    工具是vs code 代码如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...

  7. js实现网站导航的二级下拉菜单

    http://www.codesky.net/article/201109/1200js/%E5%AE%9E%E7%94%A8%E5%AF%BC%E8%88%AA%E8%8F%9C%E5%8D%95. ...

  8. 基于jQuery+ashx+.net实现三级栏目联动操作

    父级ID可以为空以两个编号为一级 可以添加到第四级 table 字段有ID. name .parentNode. childNode等基本属性  selecet  parentNode  ,len(c ...

  9. dede织梦调用顶级二级栏目及下三级栏目方法(数据库实现)

    上次有说道能调用织梦的二级栏目今天来说道说道调用三级,乃至无限极 ①:通过dede调用二级栏目大家都会调用,但要调用三级栏目,就有点麻烦了,如下样式的三级栏目dede如何调用呢?如下: ------- ...

随机推荐

  1. 简单粗暴地理解 JavaScript 原型链

    尼玛!你特么也是够了! Don’t BB! Show me the code! function Person (name) { this.name = name; } function Mother ...

  2. MongoDB性能优化指南

    一.索引 MongoDB 提供了多样性的索引支持,索引信息被保存在system.indexes 中,且默认总是为_id创建索引,它的索引使用基本和MySQL 等关系型数据库一样.其实可以这样说说,索引 ...

  3. 黑马程序员_<<GUI(图形用户管理)-----2>>

    --------------------ASP.Net+Android+IOS开发..Net培训.期待与您交流! -------------------- 8.对话框 对列出目录内容增加了对话框提示, ...

  4. jquery dragsort table实现拖拽排序

    转自:http://haoningabc.iteye.com/blog/1593640 dragsort官网地址:http://dragsort.codeplex.com/ html代码如下(需引入j ...

  5. 【留坑】uva12299

    这么sb的题本来想练练手记过就是过不了 拍半天也没问题 留坑 哪天有空了去linux下面试试 #include<cstdio> #include<cstring> #inclu ...

  6. BootStrap-table 客户端分页和服务端分页的区别

    当服务器没有对数据进行分页时,前端页面设计又要求进行分页,要分开来设置. 服务端分页: responseHandler: function(data){ return data.response; } ...

  7. 【Android - 进阶】之代码打包签名与混淆

    代码打包签名 Android Studio为大家集成了代码打包混淆的功能,具体操作流程如下组图所示: 1.点击Android Studio上方工具栏的  Build -> Generate Si ...

  8. Struts 有哪些经常使用标签库

    Struts 有哪些经常使用标签库 1.html标签库 2.bean标签库 3.logic标签库

  9. Objective-C:swift、objective-c、C++、C混合编程

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css); @import url(/ ...

  10. Java多线程——其他工具类CyclicBarrier、CountDownLatch和Exchange

    CyclicBarrier 适用于:创建一组任务,它们并行地执行任务,然后在进行下一个步骤之前等待,直至所有任务完成.它使得所有的并行任务都将在栅栏处列队,因此可以一致地向前移动. 表示大家彼此等待, ...