帝国cms导航当前页面高亮实现另类方法:灵动标签+逻辑非

2019-04-14 1,516 0

关于帝国cms制作的网站,当前页面导航高亮的实现方法,在华哥过去的这篇博文中(见:jquery实现帝国cms当前导航高亮的实践演练)已经有了成功实践。不过最近又碰到这个技术性问题,由于html代码结构不一样,采用的是另一种解决方法。

方法共分两步。

第一步,用灵动标签调用出与后台栏目相对应的导航。

帝国cms后台栏目

[e:loop={"select classid,classname from {$dbtbpre}enewsclass where bclassid=0 and showclass=0 order by myorder,classid asc",0,24,0}]
<?php
$classurl=sys_ReturnBqClassname($bqr,9);//取得栏目地址
$bgcolor="";
if($GLOBALS[navclassid])
{
$fcr=explode('|',$class_r[$GLOBALS[navclassid]][featherclass]);
$topbclassid=$fcr[1]?$fcr[1]:$GLOBALS[navclassid];//取得当前栏目的一级栏目ID
if($bqr[classid]==$topbclassid)
{
$bgcolor="active";
}
}
?>
<a href="<?=$classurl?>" class="<?=$bgcolor?>">
<?=$bqr[classname]?>
</a> [/e:loop]

效果如图:帝国cms当前栏目高亮

注意代码中的$bgcolor变量,就是它在发挥当前页面高亮的作用。

第二步,处理首页。如果当前页面是首页,那么首页高亮,导航中的其它则不高亮。

可是有个问题,首页并不在后台的栏目设置中,因此,上面灵动标签的代码不能对首页施加作用,需另外做进一步处理。

参考了这篇文章:帝国cms小技巧之 判断对应页面 给栏目高亮

不过,在实践中,发现$classid是个空值,至少在首页中经测试它是个空值。我用的版本是帝国cms7.5。

又参考了这篇文章:帝国CMS利用PHP判断当前页面是否为首页

这个不太好实践,但是提供了思路:就是要想方设法,来判断当前页是否为首页

另外那个“非首页”中的非字,让我想起了逻辑非的判断,于是查找php语法,尝试用逻辑非来解决。

代码是这样: <a href="/" <? if (!$GLOBALS[navclassid]){echo " class='active'";} ?>>首页</a>

php中的逻辑非就是一个!符号,这样一试,发现,竟然成了。

PHP判断当前页面是否为首页

不过要注意,这第二段代码可是放在第一段前的〜

本人非程序员,也不是天天研究帝国cms。不过经过这些年的折腾和实践(从7.0至7.5),用帝国cms建设网站的技术也日益增长至娴熟阶段,没有什么搞不定的,甚至可以为师教学,带着学员快速提升。最后赞一句帝国cms7.5,个人感觉真是好极了,安全、稳定、快速。

相关文章

必应站长平台提示网站SEO description文字偏短,及WORDPRESS内容批量替换保险做法
wordpress6.5升级至6.8有风险!不得不采取曲线救国方式来解决
国际择校信息平台开发手记:5+2=23,均瑶集团下属的“世外教育系国际学校”,在上海究竟有多少所?
迅睿CMS后台内容加载不出来,解决方式是升级至最新框架及建站系统,附离线包升级实操记录
择校信息平台开发手记:2025中国国际化学校排名100强,有两家比均瑶集团旗下上海世外学校更强?
超好用!营销人木木老贼推荐“智谱清言 ”8个人工智能体AI工具

发布评论