Welcome to Delicate template
Header
Just another WordPress site
Header

帝国cms使当前栏目成选中状态。

4月 25th, 2013 | Posted by 无 名 in ecms | php

在使用帝国cms做网站时,我们要时当前栏目成选中状态。
使用如下代码:

<ul>
[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&#91;navclassid&#93;)
{
$fcr=explode('|',$class_r&#91;$GLOBALS&#91;navclassid&#93;&#93;&#91;featherclass&#93;);
$topbclassid=$fcr&#91;1&#93;?$fcr&#91;1&#93;:$GLOBALS&#91;navclassid&#93;;//取得当前栏目的一级栏目ID
if($bqr&#91;classid&#93;==$topbclassid)
{
$class="class=curr";
}
}
?>
<li <?=$class?>><a href="<?=$classurl?>"><?=$bqr&#91;classname&#93;?></a></li>
[/e:loop]
</ul>

上面代码查询sql语句bclassid=0,表示查询一级栏目。然后使当前栏目成选中状态,class=”curr”。

1,当一级栏目下有二级栏目时,要改变bclassid;
bclassid=11,表示查询栏目id为11的一级栏目下面的栏目。
这时就要改变if语句为if($bqr[classid]==$GLOBALS[navclassid]),因为$GLOBALS[navclassid]才是获取的当前栏目了。

2,当二级栏目下有三级栏目时,同样再改变bclassid;
bclassid=11,表示查询栏目id为11的一级栏目下面的栏目。
这时就要改变if语句为if($bqr[classid]==fcr[2]),为什么是2,因为我们是获取当前栏目下的二级栏目,循环显示二级栏目,当当前栏目id等于该栏目时,当前二级栏目成选中状态。fcr[1]为获取一级栏目,fcr[2]为二级栏目。

You can follow any responses to this entry through the RSS 2.0 Both comments and pings are currently closed.