帝国cms如何实现二级导航

首先说一下,帝国cms的灵动标签对应的函数是sys_ReturnEcmsLoopBq,我们就在这里写自定义sql语句,代码如下:
/代码开始/



<?php
$ecms_bq_sql=sys_Re

[时间:09-30]    [浏览:]    [放入收藏夹]    [查看详情]
首先说一下,帝国cms的灵动标签对应的函数是sys_ReturnEcmsLoopBq,我们就在这里写自定义sql语句,代码如下:
 /代码开始/
<?php                                                          
$ecms_bq_sql=sys_ReturnEcmsLoopBq('select * from  [!db.pre!]enewsclass where bclassid=0  order by  classid  desc',5,24,0);//bclassid=0                                                                                    
$bqno=0;
while($bqr=$empire->fetch($ecms_bq_sql))
{
        $bqsr=sys_ReturnEcmsLoopStext($bqr);
        $bqno++;
        ?>
        <li class=""><a href="<?=$public_r[newsurl]?><?=$bqr[classpath]?>"  class="v1"><?=$bqr[classname]?></a>
<dl>
<?php
$bqno2=0;
        $ems_news_sql2=sys_ReturnEcmsLoopBq('select * from [!db.pre!]enewsclass where bclassid='.$bqr[classid].' order by classid desc',5,24,0);
        while ($bqr2=$empire->fetch($ems_news_sql2))
        {
         $bqsr=sys_ReturnEcmsLoopStext($bqr2);
         $bqno2++;
         ?>
         <dd> <a href="<?=$public_r[newsurl]?><?=$bqr2[classpath]?>"  class="menu2" target="_blank"> <?=$bqr2[classname]?></a></dd>
         <?php 
        }
?>
</dl>
</li>
        <?php
}
?>
 /代码结束/

代码解释:
第一、$ecms_bq_sql=sys_ReturnEcmsLoopBq('select * from  [!db.pre!]enewsclass where bclassid=0  order by  classid  desc',5,24,0);
这句代码其中的bclassid=0代表根目录,语句表示按照根目录来查询类表,而且按照classid来降序排列,如果你想倒一下顺序,比如像下图这样,觉得“站长杂谈”和“服务器相关”排到前面,就这样写:order by classid asc,如下图箭头所示; 二级导航排序截图
第二、$ems_news_sql2=sys_ReturnEcmsLoopBq('select * from [!db.pre!]enewsclass where bclassid='.$bqr[classid].' order by classid desc',5,24,0);
这个第二个循环里的代码,这里的bclassid='.$bqr[classid]要写对,不要漏了.$bqr[classid]前面的小圆点,是英文状态下的小圆点,这里就是子栏目和父栏目的对应关系。
通过循环,把某个栏目下的子栏目全部取出来,然后再进入下个栏目的循环,最后把所有的根栏目和下级栏目全部取出来了,最终实现效果如下:
  帝国cms二级导航实现效果截图
以上就是在帝国cms中如何通过循环语句来写二级导航代码,其实这个写法甚至可以写三级甚至四级导航,只要把握好循环要点就可以了。


PS:本文来自万书涛的个人博客,感谢分享。


标签: