帝国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)