帝国cms使用灵动标签调用当前栏目实现高亮的方法
这几天老威又开始做帝国的站,之前都是简简单单的弄个栏目导航就完事了,现在看起来真是不太雅观,找了三种实现当前栏目高亮的方法,记录下来也供大家参考。
方法1.
<ul class="clearfix"> <li><a href="[!--news.url--]" title="首页">首页</a></li> [e:loop={"select classid,classname from {$dbtbpre}enewsclass where bclassid=0 order by myorder,classid asc",0,24,0}] <?php $classurl=sys_ReturnBqClassname($bqr,9);//取得栏目地址 $class=""; if($GLOBALS[navclassid]){ $fcr=explode('|',$class_r[$GLOBALS[navclassid]][featherclass]); $topbclassid=$fcr[1]?$fcr[1]:$GLOBALS[navclassid];//取得当前栏目的一级栏目ID if($bqr[classid]==$topbclassid) { $class="selected"; } } ?> <li class="<?=$class?>"><a href="<?=$classurl?>"><?=$bqr[classname]?></a></li> [/e:loop] </ul>
方法2.
<ul class="navigate P_main"> <li><a href="[!--news.url--]">舜缘居</a></li> [e:loop={"select classid,classname,classpath from phome_enewsclass where bclassid=0 order by myorder,classid asc",0,24,0}] <?php $titleclass=''; if($bqr[classid]==$GLOBALS[navclassid]) { $titleclass='current2'; } ?> <li class="<?=$titleclass?>"><a href="/<?=$bqr[classpath]?>"><?=$bqr[classname]?></a></li> [/e:loop] <div class="clear"></div> </ul>
方法3.
//高亮当前栏目 function currentPage($classid,$thisid){ global $class_r; $fr=explode('|',$class_r[$classid][featherclass]); $topbclassid=$fr[1]?$fr[1]:$classid;//取得第一级栏目id if ($topbclassid==$thisid) { echo "class='menuon'"; } else { } }
把这段代码复制到e/class/userfun.php文件中
然后调用代码如下
<ul> <li><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]?>" <?=currentPage($GLOBALS[navclassid],$bqr[classid])?>> <a href="<?=$public_r[newsurl]?><?=$bqr[classpath]?>" title="<?=$bqr[classname]?>" target="_self" ><?=$bqr[classname]?></a> </li> [/e:loop] </ul>
总的来说这三种方法都是使用sql语句查询出表中的栏目,然后把它按照顺序排列出来,desc是降序,asc是升序,然后当前栏目使用某个css样式,便实现了我们想要的。