【最全最详细】使用publiccms实现动态可维护的导航菜单栏

简介: 【最全最详细】使用publiccms实现动态可维护的导航菜单栏


????‍????前言

昨天,给大家整理的是通过publiccms实现动态可维护的轮播图,有需要的小伙伴可以点击这里:publiccms实现动态可维护的首页轮播效果

今天,我们继续拿出来昨天的页面看看,发现首页除了有会动的轮播图之外,还有上面的导航菜单。

image-20210822082052364

以上导航,我们在实际开法中,肯定也是需要做个动态的,可让用户对其自定义管理,那么,今天我们就来看看如何使用publiccms实现动态导航,且包含二级导航。

????‍♀️思路

和轮播图一样,导航也是通过页面片段的方式来实现,在这里我多说一句,一般各个页面都需要共用的地方,都是通过页面片段来实现的,将共用部分的代码提取到一个页面片段中,后面其他页面哪个位置需要使用,直接通过@_includePlace 引入即可,语法:

<@_includePlace path="/eef45b01-0ac1-43eb-b8a3-96fa12922b4a.html"/> <#-- 首页轮播图 -->

????‍????实现

  1. 点击开发--》页面片段模板--》创建页面片段

image-20210822082955846

  1. 由于默认的那个16进制的名字看着太别扭,这次我们还是改一下吧,然后起个别名,数据条数不用指定,导航菜单只作为一个普通的页面供其他页面引用,故不用指定。最后点击保存的按钮

image-20210822083221696

  1. 点击左侧的导航菜单,右侧就会显示代码,此时我们需要从页面中将导航的代码剪切出来放在导航菜单的页面片段中。
    我已经将代码拿出来了,如下:
<!-- 导航菜单栏开始 -->
     <nav id="main_menu">
       <div class="menu_wrap">
        <ul class="nav sf-menu">
         <li class="current first"><a href="index-2.html">Home</a></li>
         <li class="last"><a href="about.html">About</a></li>
         <li class="sub-menu first"><a href="javascript:{}">Services</a>
          <ul>
           <li><a href="internet.html"><span>-</span>Internet Strategy</a></li>
           <li><a href="mobile.html"><span>-</span>Mobile Marketing</a></li>
           <li><a href="social.html"><span>-</span>Social Media</a></li>
           <li><a href="analytics.html"><span>-</span>Analytics</a></li>
          </ul>
         </li>
                                    
                                    <li class="sub-menu first"><a href="javascript:{}">Features</a>
          <ul>
           <li><a href="scaffolding.html"><span>-</span>Scaffolding</a></li>
           <li><a href="typography.html"><span>-</span>Typography</a></li>
           <li><a href="shortcodes.html"><span>-</span>Shortcodes</a></li>
           <li><a href="tables.html"><span>-</span>Tables</a></li>
          </ul>
         </li>
                                    
         <li class="sub-menu last"><a href="javascript:{}">Portfolio</a>
          <ul>
           <li><a href="portfolio_2columns.html"><span>-</span>2 Columns</a></li>
           <li><a href="portfolio_3columns.html"><span>-</span>3 Columns</a></li>
           <li><a href="portfolio_4columns.html"><span>-</span>4 Columns</a></li>
          </ul>
         </li>
         <li class="sub-menu first"><a href="javascript:{}">Blog</a>
          <ul>
           <li><a href="blog.html"><span>-</span>Blog with right sidebar</a></li>
           <li><a href="blog_post.html"><span>-</span>Blog post</a></li>
          </ul>
         </li>
         <li class="last"><a href="contacts.html">Contact</a></li>
        </ul>
       </div>
      </nav><!-- 导航菜单栏结束 -->
  1. 然后通过遍历分类的方式实现循环遍历用户自定义的分类,下面我们现在添加几个普通分类。
  2. 点击内容--》分类管理--》增加分类,此处按照实际增加分类即可。(可以参考我的添加,编码随便起一个就行,因为分类里面肯定有内容,所以分类的页面最后不要写成静态的,我们需要将分类访问路径:改成category.html?id=${category.id},此处的意思是根据分类编号查询分类信息)--》最后点击保存

image-20210822084157457

  1. 先将父分类添加完毕,我已经添加完成,如下所示:

image-20210822084728364

  1. 从静态页面中,我们可以发现该导航栏中除了有一级菜单之外,还有二级菜单。二级菜单我们可以通过对应的添加子分类的方式来实现。
  2. 在服务业菜单下面添加子分类:互联网战略、移动营销、社交媒体、分析学。

image-20210822085045849 image-20210822085540725

  1. 后台已经将所有的父分类和子分类添加完成,接下来回到导航菜单的页面片段,我们写代码动态遍历所有添加完成的导航。
    点击开发--》页面片段模板--》打开导航菜单的页面片段。
    image-2021082208572244010.将代码改成如下(一定要根据自己的史记情况改代码):
<!-- 导航菜单栏开始 -->
     <nav id="main_menu">
       <div class="menu_wrap">
        <ul class="nav sf-menu">
         
         <@_categoryList >
                         <#list page.list as a> 
                          <!-- 遍历父分类 -->
                          <#assign counts=0> <!-- 声明一个变量,因为这边代码中有隔行不同效果 -->
                           <#if counts%2==0>
                            <span>
                             <!-- 判断是否有子分类 -->
                             <#if a.name??>
                              <li class="sub-menu  last"><a href="${a.url}">${a.name}</a></li>
                               <!-- 开始遍历子分类 -->
                               <@_categoryList parentId=a.id >
                                <ul>
                                          <#list page.list as b>
                                             <li><a href="${b.url!}"><span>-</span>${b.name}</a></li>
                                         </#list>
                                      </ul>
                                    </@_categoryList>
                              <#else>
                               <li class="last"><a href="${a.url}">${a.name}</a></li>
                             </#if>  
                            </span>
                            <#else>
                             <span>
                             <!-- 判断是否有子分类 -->
                             <#if a.haschildIds?has_content>
                              <li class="sub-menu  first"><a href="${a.url}">${a.name}</a></li>
                               <!-- 开始遍历子分类 -->
                               <@_categoryList parentId=a.id >
                                <ul>
                                          <#list page.list as b>
                                             <li><a href="${b.url!}"><span>-</span>${b.name}</a></li>
                                         </#list>
                                      </ul>
                                    </@_categoryList>
                              <#else>
                               <li class="first"><a href="${a.url}">${a.name}</a></li>
                             </#if>  
                            </span>
                            </#if>
          <#assign counts=counts+1>
                             </#list>
            </@_categoryList>
         
         
        </ul>
       </div>
      </nav><!-- 导航菜单栏结束 -->

最后就可以实现动态导航效果了。注意代码中的逻辑有点儿复杂,大致原理就是,先判断父分类是否不为空,如果不为空的话遍历其下的子节点,否则不进行遍历。

今天的分享就到这里,欢迎一键三连~????

????‍♀️推荐推荐小商店的一些小商品

相关文章
|
数据库
会议OA必备!解密Layui神技:轻松构建动态可控的左侧权限菜单列表!
会议OA必备!解密Layui神技:轻松构建动态可控的左侧权限菜单列表!
91 0
|
2月前
|
前端开发
前端如何制作简易的菜单多级导航栏
前端如何制作简易的菜单多级导航栏
82 0
|
5月前
|
小程序 API
【微信小程序-原生开发】实用教程07 - Grid 宫格导航,详情页,侧边导航(含自定义页面顶部导航文字)
【微信小程序-原生开发】实用教程07 - Grid 宫格导航,详情页,侧边导航(含自定义页面顶部导航文字)
121 0
|
7月前
|
移动开发 前端开发 JavaScript
开源软件导航项目, 轻松实现自己的网站导航
开源软件导航项目, 轻松实现自己的网站导航
149 2
|
7月前
|
PHP
【最全最详细】使用publiccms实现动态可维护的首页轮播
【最全最详细】使用publiccms实现动态可维护的首页轮播
|
小程序
小程序酷炫动态登录页源码(动态水滴)
小程序酷炫动态登录页源码(动态水滴)
287 0
|
前端开发
弹性布局案例实操(京东网页对草稿页面进行改进)(二)
弹性布局案例实操(京东网页对草稿页面进行改进)(二)
161 0
弹性布局案例实操(京东网页对草稿页面进行改进)(二)
|
JavaScript
uniapp制作app顶部原生导航栏输入框的内容自动变化
uniapp制作app顶部原生导航栏输入框的内容自动变化
303 0
uniapp制作app顶部原生导航栏输入框的内容自动变化
弹性布局案例实操(京东网页对草稿页面进行改进)(一)
弹性布局案例实操(京东网页对草稿页面进行改进)(一)
392 0
好客租房155-封装顶部导航栏组件(2样式调整)
好客租房155-封装顶部导航栏组件(2样式调整)
82 0
好客租房155-封装顶部导航栏组件(2样式调整)