欢迎访问我的博客,博客正在建设中,如果你有好的建议欢迎来信!!-小酌
当前位置: 首页 > 建站 > 帝国CMS

帝国栏目及栏目高亮处理(图文)

pancho 2018-09-25 12 0
       这篇文章记录帝国CMS内容管理系统中的栏目调用和栏目高亮处理,在这之前,网站一直采用的是静太链接的方式直接指定相关文件夹,为减少后期维护时间于是想着要把栏目导航做成动态添加,直接的好处就是修改栏目名后无需再去修改模板。栏目修改的同时,顺便也对当前所访问的栏目做了高亮处理,使访问更加友好。
最开始想着通过标签的方式修改,那知标签模板下面的变量添加进去以后都无法识别,到了前台显示全是变量名。
后来通过查看虚拟机的帝国示例网站模板成功的将栏目添加了进去,但是并没实现高亮,帝国的示例模板也没这功能,于是开始找度娘。
搜出来的多数答案都差不多,大致方式为:
       通过在模板变量中添加灵动标签的方式获取栏目,并将栏目ID插入标签,然后通过PHP获取当前页ID值并与栏目ID值做对比判断,确定当前页后插入class标签。
网上有直接添加的,也有通过在服务器e/class/userfun.php中添加的。
下图为userfun.php的高亮配置,对传入的两个ID做对比
<?php
//高亮当前栏目
function currentPage($classid,$thisid){
        global $class_r;
        $fr=explode('|',$class_r[$classid][featherclass]);
        $topbclassid=$fr[1]?$fr[1]:$classid;//取得第一级栏目id
        if ($topbclassid==$thisid) {
                  echo "top_current"; //这里原来是echo "class='top_current",因为我原标签上已经有class属性了,所以这里我把外面的包裹去掉了。
                }
                else {
                }
}
?>

       下面这段代码是放在管理后台模板变量里,我也做了适当的修改,因为默认首页就是高亮状态,而首页又不在栏目内,所以单独出来了。
<?php  if(empty($GLOBALS[navclassid])){echo "top_current";} ?>   //这段代码是用来判断classid的值 ,若为空插入top_current  .百度出来的原代码为:<?php  if(empty($GLOBALS[navclassid])){echo "class='top_current'";} ?>
<li id="cid<?=$bqr[classid]?>" class=" <?=currentPage($GLOBALS[navclassid],$bqr[classid])?> nav-li"> //这段代码是用来插入栏目,并且将栏目的ID值插入为标签的ID(cid+数字  ),调用判断函数确定当前页ID是否相同,如果相同便插入usrefun.php里面定义的
class名,即:top_current   如果userfun.php配置里的echo""值已经被class包裹,那么这里就不能再被class包裹,不然代码出错,不会生效。
<li class="nav-li <?php  if(empty($GLOBALS[navclassid])){echo "top_current";} ?>"><a href="[!--news.url--]">首页</a></li>
[e:loop={'select classid,classname,classpath from [!db.pre!]enewsclass where bclassid=0 and showclass=0 order by myorder',0,24,0}]
<li id="cid<?=$bqr[classid]?>" class=" <?=currentPage($GLOBALS[navclassid],$bqr[classid])?> nav-li">
<a href="<?=$public_r[newsurl]?><?=$bqr[classpath]?>"><?=$bqr[classname]?></a></li>
[/e:loop]

       这两步修改完以后就可以去自定义一个CSS样式了,class名为:top_current 也就是插入进去的class名。完成后更新数据即可。
下图为我网站目前的高亮状态,懒的重新改,直接把hover下的代码复制过去完事。

以上便是灵动标签调用栏目以及当前栏目高亮的操作,这里只涉及了顶级栏目的处理。提供了一个思路,为后期修改二级三级栏目做铺垫。

版权声明:除作者特别注明外,本站所有文章均为作者个人原创

转载请注明:出处 Récit | 怡然自酌 帝国栏目及栏目高亮处理(图文)

回到顶部