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