帝国CMS实现一二级导航及其高亮

  可以用以下方法实现一二级导航

 <li id="<?=$GLOBALS[navclassid]==0?'nav_select':''?>"><a href="/">首页</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="<?=(($GLOBALS[navclassid]==$bqr[classid]) || ($class_r[$GLOBALS[navclassid]][bclassid] == $bqr[classid]))  ?'nav_select':''?>"><a href="<?=$public_r[newsurl]?><?=$bqr[classpath]?>/" title="<?=$bqr[classname]?>"><?=$bqr[classname]?></a></li>
 [/e:loop]

      使用 $GLOBALS[navclassid] 来判断当前栏目的ID

      如果是"0",说明当前栏目没有ID,那么肯定就是首页了。

      使用灵动标签,循环输出属于根目录下的一级栏目。

      其中:

<?=(($GLOBALS[navclassid]==$bqr[classid]) || ($class_r[$GLOBALS[navclassid]][bclassid] == $bqr[classid]))  ?'nav_select':''?>

      用来做当前栏目页面和相应的导航项高亮。 $bqr是通过灵动标签循环出来的每个栏目的ID,如果其与当前栏目相等则高亮之。

      但是如果进入了二级栏目,$GLOBALS[navclassid]为二级栏目的ID,所以需要 

      $class_r[$GLOBALS[navclassid]][bclassid] == $bqr[classid]

      来进行判断,

  $class_r 为所有栏目的信息,索引为栏目ID,bclassid为当前栏目的父栏目ID。

      那么就可以在二级栏目时判断其父栏目的ID为多少,是否高亮一级栏目选项的高亮了。

  二级栏目通过如下输出:

 [showclasstemp]'selfinfo',14,0,0[/showclasstemp]

  这个标签是专门输出栏目的,selfinfo表示输出当前父栏目下的二级栏目。14代表模板的序号。

      如上几条代码,放在合适的位置即可实现一二级栏目,及其高亮的设置了。

原文地址:https://www.cnblogs.com/leftice/p/3234810.html