个人日记

您现在的位置是:首页 > 学习笔记 > 帝国CMS

帝国CMS

帝国cms 无限循环导航栏目,当前高亮

2020-09-29 15:04:05 帝国CMS 人点赞
方案一:

<li class="<?=$GLOBALS[navclassid]==0?&#39;current&#39;:&#39;&#39;?>"><a href="[!--news.url--]">首页</a></li>

<?php
$sql=$empir
方案一:

<li class="<?=$GLOBALS[navclassid]==0?'current':''?>"><a href="[!--news.url--]">首页</a></li>
                        
<?php
$sql=$empire->query("select classid,classname,bname,islast from {$dbtbpre}enewsclass where bclassid=0 and showclass=0 order by myorder,myorder asc");
    while($s=$empire->fetch($sql)){
            $tclass="";
        $fr=explode('|',$class_r[$GLOBALS[navclassid]][featherclass]);
        $topbclassid=$fr[1]?$fr[1]:$GLOBALS[navclassid];
        if($topbclassid==$s[classid]){
                $tclass='current';
        }
        $classurl=sys_ReturnBqClassname($s,9);
        
        echo '<li class="'.$tclass.'"><a href="'.$classurl.'">'.$s[bname].'</a>'; //一级栏目样式 
        if(!$s[islast]){  //判断是否存在子栏目
                $sql2=$empire->query("select classid,classname,bname from {$dbtbpre}enewsclass where bclassid=$s[classid] and showclass=0 order by myorder,myorder asc");
            $str="";
            while($s2=$empire->fetch($sql2)){
                                $tclass2="";
                                if($GLOBALS[navclassid]==$s2[classid]){
                                        $tclass2='curr';
                                }
                    $classurl2=sys_ReturnBqClassname($s2,9); 
                    $str.='<a class="'.$tclass2.'" href="'.$classurl2.'">'.$s2[bname].'</a>'; //子栏目格式样式
            }
            echo '<div class="submenu-nav">'.$str.'</div>'; // 子栏目DIV样式
        }
        echo '</li>';
    }
?>

 

文章二:

 

推荐方案3

帝国cms设置,一级栏目高亮,并且二级栏目增加一个类名,class="sub"。用灵动标签可以实现,先获取一级栏目的地址,然后再判断是否是终极栏目,是的话,就添加样式sub,不是终极栏目就为空

方案1:

<ul id="starlist">
     <li><a href="[!--news.url--]" title="首页">网站首页</a></li> 
[e:loop={"select classid,classname,islast,showclass from {$dbtbpre}enewsclass where bclassid=0 and showclass=0 order by myorder,classid asc",0,24,0}] 
<?php 
$classurl=sys_ReturnBqClassname($bqr,9);//取得栏目地址 
$class=""; 
if($GLOBALS[navclassid]){ 
$fcr=explode('|',$class_r[$GLOBALS[navclassid]][featherclass]); 
$topbclassid=$fcr[1]?$fcr[1]:$GLOBALS[navclassid];//取得当前栏目的一级栏目ID 
if($bqr[classid]==$topbclassid) 

$class='class="selected"'; 


?> 
<li <?=$class?>><a href="<?=$classurl?>"><?=$bqr[classname]?></a>
<?php
if(!$bqr[islast]) //判断是否终极栏目

$classsub='<ul class="sub">'; 
$classsubend='</ul>'; 

else

$classsub=''; 
$classsubend=''; 
}
{
?>
   <?=$classsub?>
    <?php
    //取得栏目下的子栏目       
    $newsclass=$empire->query("select classid,classname from ".$dbtbpre."enewsclass where bclassid=".$bqr[classid]." order by myorder,classid desc");
    while($classr=$empire->fetch($newsclass))
    {
        $classrurl=sys_ReturnBqClassname($classr,9); //取得子栏目地址
        ?>
        <li><a href="<?=$classrurl?>" ><?=$classr[classname]?></a></li>
    <?php
    }
    ?>
  <?=$classsubend?>
<?php
}
?>
</li> 
[/e:loop] 
    </ul>
 

方案2:

一级栏目高亮“selected”,并且增加样式“menu”

 

<ul > 
<li><a href="[!--news.url--]" title="首页">首页</a></li> 
[e:loop={"select classid,classname,islast from {$dbtbpre}enewsclass where bclassid=0 order by myorder,classid asc",0,24,0}] 
<?php 
$classurl=sys_ReturnBqClassname($bqr,9);//取得栏目地址 
$class=""; 
if($GLOBALS[navclassid]){ 
$fcr=explode('|',$class_r[$GLOBALS[navclassid]][featherclass]); 
$topbclassid=$fcr[1]?$fcr[1]:$GLOBALS[navclassid];//取得当前栏目的一级栏目ID 
if($bqr[classid]==$topbclassid) 

$class='class="selected menu"'; 

else if(!$bqr[islast]) //判断是否终极栏目

$class='class="menu"'; 


?> 
<li <?=$class?>><a href="<?=$classurl?>"><?=$bqr[classname]?></a>
    <ul>
    <?php
    //取得栏目下的子栏目       
    $newsclass=$empire->query("select classid,classname from ".$dbtbpre."enewsclass where bclassid=".$bqr[classid]." order by myorder,classid desc");
    while($classr=$empire->fetch($newsclass))
    {
        $classrurl=sys_ReturnBqClassname($classr,9); //取得子栏目地址
        ?>
        <li><a href="<?=$classrurl?>" target="_blank"><?=$classr[classname]?></a></li>
    <?php
    }
    ?>
    </ul>
</li> 
[/e:loop] 
</ul>
<style>
.selected > a{color:red}
</style>

方案3:判断是否存在子栏目

<nav>
<ul id="starlist">
     <li><a href="[!--news.url--]" title="首页">网站首页</a></li> 
[e:loop={"select classid,classname,islast,sonclass from {$dbtbpre}enewsclass where bclassid=0 and showclass=0 order by myorder,classid ASC",0,24,0}]
<?php $classurl=sys_ReturnBqClassname($bqr,0);//取得栏目地址 ?>
  <?php
if($bqr[sonclass]=='' or $bqr[sonclass]=='|') //判断是否存在子栏目   另外加一句判断。坑爹的帝国cms,有时候会莫名其妙的把终极栏目记录了一个值“|”
{
        ?>
        //单独一级栏目格式
        <li><a href="<?=$bqsr[classurl]?>" ><?=$bqr[classname]?></a></li>
        <?php
        }
else
        {
?>
//一级栏目下有子栏目-一级栏目格式
  <li class="menu"><a href="<?=$bqsr[classurl]?>" ><?=$bqr[classname]?></a>
  <ul class="sub">
   
      <?php
    $newsclass=$empire->query("select classid,classname from ".$dbtbpre."enewsclass where bclassid=".$bqr[classid]." order by myorder,classid asc");
while($classr=$empire->fetch($newsclass))
    {
        $classrurl=sys_ReturnBqClassname($classr,9); //取得子栏目地址
        ?>
        //一级栏目下-子栏目格式
        <li><a href="<?=$classrurl?>"><?=$classr[classname]?></a></li>
<?php
}
?>
    </ul></li>
  <?php
}
?>
[/e:loop]
    </ul>
</nav>



// -----------------------前端显示HTML代码----

<nav>
<ul id="starlist">
     <li><a href="http://ecms.xiaoyangge.com/" title="首页">网站首页</a></li> 
     
  <li class="menu"><a href="http://ecms.xiaoyangge.com/a/lanmu/"  target="_blank">栏目</a>
  <ul class="sub">
      <li><a href="http://ecms.xiaoyangge.com/a/qiqu/"  target="_blank">奇趣事</a></li>    </ul><span></span></li>
            <li><a href="http://ecms.xiaoyangge.com/a/keji/"  target="_blank">科技</a></li>  
           <li><a href="http://ecms.xiaoyangge.com/a/meiji/"  target="_blank">美记</a></li>  
           <li><a href="http://ecms.xiaoyangge.com/a/meiwei/"  target="_blank">美味</a></li>  
     </ul>
</nav>

 

注意事项:

在使用过程中请注意 栏目数量,过多会造成错位。

830*140广告

文章评论