PHPcms导航菜单栏根据栏目改变样式

PHPcms导航菜单栏根据栏目改变样式,这个问题困惑了我很久,翻看了phpcms手册,似乎也没有这方面的解决方案。我要的效果如下图


意思是现在如果是互联网栏目,背景颜色就改成金黄色,网上搜索了下,解决方案是这样的
  1. {pc:content action=category catid=0 num=25  order=listorder ASC}  
  2.          {loop $data $r}  
  3.              <li><a href={$r[url]} {if $r[catid] == $catid } class=select {/if}>{$r[catname]}</a></li> 
  4.          {/loop}  
  5.   {/pc} 

如上面代码,当前catid,等于接收到的catid,就会改变导航条菜单a的样式,这样可以满足一般的需要,当时,如果导航菜单下面还有子类的话,点击下面子类就不会这样显示了,原因是子类的ID肯定不等于当前栏目ID,除非要获取顶级栏目ID,修改后的代码如下:
 

  1. {php $topcatid=$CATEGORYS[$top_parentid][catid]}<!--获取顶级栏目catid,但是单网页模型的内容无法获取--> 
  2. {php if($topcatid=='')$topcatid=$catid}  
  3. {php if($topcatid=='35' || $topcatid=='36' || $topcatid=='37' || $topcatid=='38')$topcatid=1}<!--公司介绍团队介绍等单网页模型直接赋值顶级catid为1--> 
  4.  
  5. {pc:content action=category catid=0 num=25  order=listorder ASC}  
  6.   {loop $data $r}  
  7.        <li><a href={$r[url]} {if $r[catid] == $topcatid } class=select {/if}>{$r[catname]}</a></li> 
  8.   {/loop}  
  9. {/pc} 

这样就可以实现PHPcms导航菜单栏根据栏目改变样式了,上面{php if($topcatid=='35' || $topcatid=='36' || $topcatid=='37' || $topcatid=='38')$topcatid=1}这个IF判断,一般的用户不需要添加,这个是因为我上面有个公司介绍栏目,属于单网页类型,公司介绍后面有子分类,$catid分别是35到38,而$CATEGORYS[$top_parentid][catid]}这个是获取不到单网页类型的栏目的。
如果还有疑问,请到程序员人生网给我留言

相关文章

本教程操作系统:Windows10系统、phpcms 9版本、Dell G3电脑...
PHPcms访问特点:单一入口模式。无论访问任何一个模块或者功...
例如:{pc:contentaction="position"posid="...
首先,上图之中的红色框框是没有的,我们想要给他加上,当然...
头部<metaname="keywords"content="{$SEO...
做网站时用的到的简单的栏目导航()phpcms多个栏目catidin(9,...