帝国cms教程栏目,提供精品建站,仿站,二次开发,安装,标签使用等图文教程,帮助建设和管理好你的帝国cms站点。
帝国cms有三级栏目如何调用,类似下图效果:
具体实现代码如下:
<?php
$sql=$empire->query('select classid,bclassid,classname,classpath,wburl,islast from '.$dbtbpre.'enewsclass order by myorder, classid asc ');
for($i=1;$cr=$empire->fetch($sql);$i++)
{
$r[$i]=$cr;//select出的数据储存到数组
}
for($i=1;$r[$i];$i++)
{
if($r[$i][bclassid]==0)//选出一级栏目
{
echo '<dd><a href="'
.($r[$i][classpath]==''?$r[$i][wburl]:'/'.$r[$i][classpath]).'/">'.$r[$i][classname].'</a>';
if($r[$i][islast]==0&&$r[$i][wburl]=='')//选出非终极栏目
{
echo "<ul>";
for($j=1;$r[$j];$j++)//循环数组一次
if($r[$j][bclassid]==$r[$i][classid] && $r[$j][islast]!=0)//选出二级栏目
{
echo '<li ><a href="'
.($r[$j][classpath]==''?$r[$j][wburl]:'/'.$r[$j][classpath]).'/">'.$r[$j][classname].'</a>';
}else{
if($r[$j][bclassid]==$r[$i][classid])//选出三级栏目
{
echo "<br>";
echo '<li id="lm2"><a href="'
.($r[$j][classpath]==''?$r[$j][wburl]:'/'.$r[$j][classpath]).'/">'.$r[$j][classname].':</a>';
echo "<ul>";
for($k=1;$r[$k];$k++)//循环数组一次
if($r[$k][bclassid]==$r[$j][classid])
echo '<li><a href="'
.($r[$k][classpath]==''?$r[$k][wburl]:'/'.$r[$k][classpath]).'/">'.$r[$k][classname].'</a></li>';
echo "</ul>";
}
}
echo "</li>";
}
echo '</dd>';
}
}
?>
代码使用了三个循环来获取栏目。如果我们需要调更多级栏目呢?显然这个方法不是那么好用,下面我们封装了一个无限极栏目调用的方法。
在 e/class/userfun.php 我们定义一个函数,具体代码如下:
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" style="display:none">'.$moreclassstr.'</ul>';
}
$returnstr.="</li>";
}
return $returnstr;
}
代码中的样式可以根据需求来修改。在模板中使用下面代码就可以调用了。
<?=dp_classmenu(0)?>
以上就是帝国cms调用三级栏目和无限极栏目调用的方法,希望对您有所帮助。
转载请注明来源:帝国cms调用三级栏目的方法
本文永久链接地址:https://www.moyouyouw.cn/code/330.html
郑重声明:本站所有主题/文章除标明原创外,均来自网络转载,版权归原作者所有,如果有侵犯到您的权益,请联系本站删除,谢谢!我们不承担任何技术及版权问题,且不对任何资源负法律责任。
上一篇
下一篇
售价: 399 146 ℃ 0 评论
售价: 399 126 ℃ 0 评论
售价: 399 93 ℃ 0 评论
已有 位小伙伴发表了看法
欢迎 你 发表评论