phpcms 完美实现 导航栏当前栏目高亮

本文介绍使用PHPCMS实现导航栏及其子导航高亮的方法,包括处理栏目列表页、内容页及单页高亮的问题,并提供参考代码。针对单页多级情况,提出通过增加判断逻辑来解决高亮失效的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们在用phpcms做网站的时候,经常碰到导航栏高亮功能,或者侧栏高亮,这个会涉及到几个问题:
1.栏目列表页子栏目高亮判断,如果当前页面为子栏目,他的顶级栏目如果在导航栏也要高亮。
2.内容页高亮,这个phpcms一般没有问题。
3.单页高亮判断。
主要问题就在这里,一般我们直接用$top_parentid参数来判断就可以。但是由于phpcms的设计问题,单页没有$top_parentid参数,如果单页为多级单页,那么这个办法就行不通了。
如何解决?
其实也比较简单,就是多加几个判断,由于单页有个$parentid参数,那么我们就可以以此来判断。
以下为参考代码:
导航栏带子导航菜单并且高亮
{pc:content action="category" catid="0" num="15" siteid="$siteid" order="listorder ASC"}
  {loop $data $r}
       <li class="nav_master{if $top_parentid == $r[catid]||$catid==$r[catid]||$parentid==$r[catid]} current{/if}">
           <a class="nav_master_a" href="{$r[url]}">{$r[catname]}</a>
           {pc:content action="category" catid="$r[catid]" num="25" siteid="$siteid" order="listorder asc" return="da"}
            {if $da}
              <ul class="nav_sub">           
                  <li>
                {loop $da $v}
                  <a href="{$v[url]}">{$v[catname]}</a>
                {/loop}
                </li>         
                  </ul>
            {/if}     
        </pc>    
     </li>  
  </loop>
{/pc}
 
 当然这个属于普遍通用的,对于特殊情况可能仍有一些bug,比如单页为3级以上的,那么这个可能失效了,
但是对于一般的网站够用了,而且这个的好处是不用修改phpcms的程序了。

 

转载于:https://www.cnblogs.com/qhorse/p/5018721.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值