欢迎光临万书涛的个人博客

帝国cms如何实现二级导航

作者:万书涛  / 日期:2020-04-11 20:10:17 /  来源:本站原创 /   浏览:
摘要
帝国cms默认的灵动标签没有提供二级循环实现导航功能,但是提供了扩展函数可以自定义sql语句来实现二级导航,下面我们就一起来看一下如何实现这个功能,这个写法可以像灵动标签一样写在帝国cms模板页面里。  
首先说一下,帝国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中如何通过循环语句来写二级导航代码,其实这个写法甚至可以写三级甚至四级导航,只要把握好循环要点就可以了。
 
点赞作者(
所属分类: 暂无分类
微信二维码

扫描关注微信公众号
第一时间获取最新资讯
本文由万书涛原创,地址:https://www.wtaoblog.com/dgcms/17.html
如需转载,须以文字形式注明本文地址,否则禁止转载