帝国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来查询二级栏目
