最近帮人做站时用到无限极栏目导航,因此写了一个函数实现此功能。演示例子看 m.mejiankang.com 的栏目导航。

  函数如下:

function dp_classmenu($bclassid,$i=0,$m=0){
	global $empire,$dbtbpre,$public_r;
	$bclassid=(int)$bclassid;
	$i=(int)$i;
	if(!$i){$i=1;}
	$d=$i;
	if($d>2){$d=2;}
	$st='';
	if($d>1&&$m==1){
		$st=' start';
	}
	$returnstr='';
	$i+=1;
	$m=0;
	$sql=$empire->query("select classid,classname,bclassid,islast,classpath from {$dbtbpre}enewsclass where bclassid='$bclassid' and wburl='' order by myorder,classid");
	while($r=$empire->fetch($sql)){
		$returnstr.='<li class="tm'.$d.$st.'">';
		$classurl=$public_r['newsurl'].$r['classpath'].'/';
		$m+=1;
		if($r['islast']){
			$qstr='<span class="facefont wj">&C</span>';
			$lian='';
			$hstr='';

		}else{
			$qstr='<span class="facefont wjj">&D</span>';
			$lian='class="lian"';
			$hstr='<span class="facefont hao">-</span>';
		}


		$returnstr.=$qstr.'<a href="'.$classurl.'" '.$lian.'>'.$exp.$r['classname'].'</a>'.$hstr;
		if(empty($r['islast']))
		{
			$moreclassstr=dp_classmenu($r['classid'],$i,$m);
			$returnstr.='<ul class="tmu2" "display:none">'.$moreclassstr.'</ul>';
		}
		$returnstr.="</li>";
	}
	return $returnstr;
}

  上面这个函数最后的效果跟演示站是一样的,是竖版导航。如果需要做成横版,只需要更改css。

  使用方法是将此函数放到 e/class/userfun.php 文件中,然后就可以在模板中调用了,如:

<?=dp_classmenu(0)?>