帝国cms利用JS使当前栏目无限级高亮控制
2011-09-11 站长 站长日志
首先我们要用到灵动标签从数据库取出对应的栏目名称:
一、若要取出所有的最顶级的栏目名称选择:bclassid=0,其中 id="cid<?=$bqr[classid]?> 就是要拿到当前页面的ID值
[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]?>" target="_self" ><?=$bqr[classname]?></a> </li> [/e:loop]
二、若要取出固定的栏目:可以将bclassid=59,这个值就是你的父栏目的ID值,其中 id="cid<?=$bqr[classid]?> 就是要拿到当前页面的动态ID值,生成的字符是cid28,cid29,cid30等等。
[e:loop={'select classid,classname,classpath from [!db.pre!]enewsclass where bclassid=59 and showclass=0 order by myorder',0,24,0}] <li> <a id="cid<?=$bqr[classid]?>" href="<?=$public_r[newsurl]?><?=$bqr[classpath]?>" target="_self" > <?=$bqr[classname]?> </a> </li> [/e:loop]
把js在其下面加载,JS代码如下,其中cur2 就是你的定住并要显示高亮的样式,不过多赘述。
<script type="text/javascript"> var myid = document.getElementById('cid[!--self.classid--]'); myid.className = 'cur2'; </script>
变量说明:
[!--self.classid--] 代表当前的栏目ID数值
<?=$bqr[classid]?> 代表栏目ID
其他方法参考:
首先要在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 { } } function OnePage($classid,$thisid){ global $class_r; $fr=explode('|',$class_r[$bclassid][featherclass]); $topbclassid=$fr[1]?$fr[1]:$classid;//取得子栏目id if ($topbclassid==$thisid) { echo "bmenuon"; } else { } }
模板里调用
<ul> <li class="menuon"><a href="[!--news.url--]" 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]?>" target="_self" ><?=$bqr[classname]?></a> </li> [/e:loop] </ul>