首先把 下面这段语句加入到 e/class/userfun.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 "class='menuon'"; } else { } }
灵动标签调用代码如下: <ul> <li><a href="[!--news.url--]" title="卡啦女装网首页" target="_self">首页</a></li> [e:loop={'select classid,classname,classpath from [!db.pre!]enewsclass where bclassid=0 order by classid',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>
然后定义css ,也就是“.menuon”,如果还够的话,还可以用“#cid*”来定议,不用讲应该明白吧,如果还不明白就要去好好学学CSS了。
但这个调用有个毛病就是如果你设定了哪个栏目不显示的话还是会全部调用出来,下面给出了一个解决方案,只调用显示出来的栏目(注意红色的部分啊)
<ul> <li><a href="[!--news.url--]" title="卡啦女装网首页" target="_self">首页</a></li> [e:loop={'select classid,classname,classpath from [!db.pre!]enewsclass where bclassid=0 and showclass=0 order by classid',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>
但是上面这种方法还有一个不太完美的地方,就是调用栏目的顺序是按栏目ID固定不变的,但是大家知道帝国后台可以设置栏目的排序显示方式,那么有没有解决的办法呢?答案是肯定的,当然有,请看下面给出最完美的解决方案: <ul> <li><a href="[!--news.url--]" title="卡啦女装网首页" target="_self">首页</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>
首发顶博:http://www.hudigg.com/blog/post-133.html 实际应用请看卡啦女装网:http://www.kalaaa.com/gallery/
注:用栏目ID和频道ID组合CSS定义的方式可以轻松实现频道、栏目、内容都实现自动高亮显示!大家看实际应用演示页就知道了!
|