ecms class
帝國CMS的一級欄目區分和當前二級欄目而顯示不同樣式。

在實際項目中,遇到欄目一二級欄目較多,且要判斷是否是高亮當前欄目,之前一直都是單獨調用對應的子欄目,為了實現效果會出現好幾個模板,為解決這個問題,特搜索并結合之前的方法(靈動標簽調用欄目,可定義當前欄目的class樣式),調整了一下。

如下圖,所在當前一級欄目是展開狀態,而且都在當前二級欄目是高亮狀態。其他一級欄目是收縮狀態。

ecms menu

使用如下代碼,可實現:

[e:loop={"select classid,classname,islast from {$dbtbpre}enewsclass where bclassid='0' and showclass=0 order by myorder,classid ASC limit 11",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=" on"; //當前欄目高亮顯示
}
}
elseif($public_r[home]==1)
{
$class="";
}
?>
                    <div class="list<?=$class?>">
                        <div class="first_cate son">
                            <a href="<?=$classurl?>" class="category_<?=$bqr[classid]?>" title="<?=$bqr[classname]?>"><?=$bqr[classname]?></a>
                            <div class="border"></div>
                        </div>
<?php
if(!$bqr[islast]) //判斷是否終極欄目
{
?>
                        <div class="son_cate">
    <?php
    //取得欄目下的子欄目
    $newsclass=$empire->query("select classid,classname from ".$dbtbpre."enewsclass where bclassid=".$bqr[classid]." order by myorder,classid asc limit 11");
    while($classr=$empire->fetch($newsclass))
    {
        $classrurl=sys_ReturnBqClassname($classr,9); //取得子欄目地址
        $classrname="";
        if($classr[classid]==$GLOBALS[navclassid])
        {
        $classrname=" on";
        }
        ?>
                            <div class="item category_<?=$classr[classid]?><?=$classrname?>"><a href="<?=$classrurl?>" class="text-over block" title="<?=$classr[classname]?>"><?=$classr[classname]?></a></div>
    <?php
    }
    ?>
                        </div>
<?php
}
?>
                    </div>
[/e:loop]

其中,可不調用隱藏設置的欄目:and showclass=0 //0為顯示,1為不顯示
and classid<>25為排除指定欄目