帝国cms使用标签实现二级导航比较困难,我们可以使用帝国cms灵动标签提供的扩展函数,通过自定义sql语句来实现二级导航,下面说下如何实现帝国cms二级下拉式导航。
代码如下:
<?php //通过下列sql语句查询一级导航,并根据自定义排序来升序排序 //优悦教程 www.cnyouyue.com $ecms_bq_sql = sys_ReturnEcmsLoopBq('select * from [!db.pre!]enewsclass where bclassid=0 order by myorder asc', 5, 24, 0); $bqno = 0; while ($bqr = $empire->fetch($ecms_bq_sql)) { $bqsr = sys_ReturnEcmsLoopStext($bqr); $bqno++; ?> <li id="tabnav_btn_<?= $bqr[classid] ?>"><a href="<?= $public_r[newsurl] ?><?= $bqr[classpath] ?>" class="menu1"><?= $bqr[classname] ?></a> <?php if ($bqr['islast'] == 0) {//假如不是终极栏目,则运行下面代码 ?> <ul> <?php $bqno2 = 0; //$bqr[classid] 根据一级栏目的ID来查询二级栏目 $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++; ?> <li> <a href="<?= $public_r[newsurl] ?><?= $bqr2[classpath] ?>" class="menu2" target="_blank"> <?= $bqr2[classname] ?></a></li> <?php } ?> </ul> <?php } ?> </li> <?php } ?>
以上代码可以插入到公共模板变量的头部模板里。
代码解析:
$ecms_bq_sql = sys_ReturnEcmsLoopBq('select * from [!db.pre!]enewsclass where bclassid=0 order by myorder asc', 5, 24, 0);
sql语句中,where bclassid=0 表示查询一级栏目。
order by myorder asc 表示排序方式,按myorder升序排序。在后台栏目管理那修改顺序即可。
if ($bqr['islast'] == 0) { //假如不是终极栏目,则运行下面代码 这句代码可以在有二级栏目的情况下再去查询。没有的话,不执行大括号里的代码。
$ems_news_sql2 = sys_ReturnEcmsLoopBq('select * from [!db.pre!]enewsclass where bclassid=' . $bqr[classid] . ' order by classid desc', 5, 24, 0);
$bqr[classid] 根据一级栏目的ID来查询二级栏目