帝国cms利用php实现可以指定ID的无限级导航简单示例

具体代码如下:
 

<?
        function daohang($bclassid=0)
        {
                global $empire,$dbtbpre,$public_r;
                      $sql=$empire->query("select * from  {$dbtbpre}enewsclass where bclassid=$bclassid order by myorder,classid");
                while($r=$empire->fetch($sql))
                {
                        $jclassURL=@sys_ReturnBqClassname($r,9);
                        $num = @ReturnClassInfoNum($r);            
                        if(empty($r['islast']))
                        {
                                echo '<ul>'.'<a href="'.$jclassURL.'">'.$r['classname'].'</a>'.'('.$num.')'.'</ul>';
                                daohang($r['classid']);
                         }
                        else
                                echo '<li>'.'<a href="'.$jclassURL.'">'.$r['classname'].'</a>'.'('.$num.')'.'</li>';
                }
        }
        echo '<ul>';
        daohang(0);
        echo '</ul>';
?>

————-父子栏目全显示—————-
新闻中心(384)
国内新闻(121)
国际新闻(77)
娱乐新闻(69)
体育新闻(116)
盂县(1)
下载中心(24)
系统软件(6)
网络工具(6)
安全相关(6)

注释:
1、如果把SQL语句改成select * from  {$dbtbpre}enewsclass where bclassid=$bclassid and tbname='news'  order by myorder,classid,即加了and tbname='news' 这个条件就可以只显示新闻系统模型的栏目。

2、 指定显示一级栏目下的子栏目(不显示父栏目)如果把daohang($bclassid=0)和下面的 daohang(0);改成对应父栏目ID就循环显示该栏目下的子栏目了,比如新闻中心ID是2,改成了daohang($bclassid=2)和下面的 daohang(2);那么就显示新闻中心下面所有子栏目了。

3、上面2的方法还能 只修改 bclassid=$bclassid 为 bclassid=2 或 bclassid in (2)
                 多个时  bclassid=$bclassid 为 bclassid=2 or bclassid=3 或 bclassid in (2,3)

————-只显示子栏目—————-
国内新闻(121)
国际新闻(77)
娱乐新闻(69)
体育新闻(116)
系统软件(6)
网络工具(6)
安全相关(6)
媒体工具(6)
盂县(1)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。