帝国cms 列表页调用子栏目,没有则不显示栏目名称

来自:互联网
时间:2018-09-21
阅读:

使用帝国cms要在列表页调用该栏目下的子栏目,[showclasstemp]'selfinfo',1,0,0[/showclasstemp] 这句话可以实现,但是有个问题,如果这个栏目是一个一级栏目,没有二级栏目,那么显示的是跟它同级的栏目名称。比如我网站上的“博客日记”,该栏目下面没有子栏目,如果我使用这一句调用,那么就会出现“模板分享,学无止境,慢生活”等所有跟它同级的栏目。

那么如果没有子栏目,用if怎么来判断呢?我参照了帝国cms官方论坛的办法,修改了下,可以实现我想要的效果,代码如下:

<h2 class="hometitle"><span>
<?php
  $islast=$class_r[$GLOBALS[navclassid]][islast]; //当前栏目判断是否为终级栏目
  $bclassid=$class_r[$GLOBALS[navclassid]][bclassid];//获取当前父栏目ID
?>
<?php
   if($islast==1 and $bclassid==0){//终极栏目,没有父栏目,则不输出
?>
<?php
    }else{//否则就调用当前栏目下的子栏目列表
?>
[showclasstemp]'selfinfo',1,0,0[/showclasstemp]
<?php
    }
?>
</span>[!--class.name--]</h2>
附上帝国cms论坛上的解决办法:
<?php
  $islast=$class_r[$GLOBALS[navclassid]][islast]; //当前栏目判断是否为终级栏目
  $bclassid=$class_r[$GLOBALS[navclassid]][bclassid];//获取当前父栏目ID
?>
<ul class="list">
<?php
   if($islast==1 and $bclassid==0){//终极栏目,没有父栏目,则查询当前栏目下的信息列表
?>
[e:loop={"select * from phome_ecms_news  where classid='".$GLOBALS[navclassid]."'",20,24,1}]
   <li><a href="<?=$bqsr[titleurl]?>"><?=esub($bqr[title],18)?></a></li>
[/e:loop]
<?php
   }else if($islast==1 and $bclassid!=0){//终极栏目,有父栏目,则查询父栏目下的子栏目列表
?>
[e:loop={"select * from phome_enewsclass where  bclassid='".$bclassid."'",24,24,1}]
   <li><a href="[!--news.url--]<?=esub($bqr[classpath],200)?>"><?=esub($bqr[classname],18)?></a></li>
[/e:loop]
<?php
    }else{//否则就调用当前栏目下的子栏目列表
?>
[e:loop={"select * from phome_enewsclass where bclassid='".$GLOBALS[navclassid]."'",24,24,1}]
    <li><a href="[!--news.url--]<?=esub($bqr[classpath],200)?>" ><?=esub($bqr[classname],18)?></a></li>
[/e:loop]
<?php
    }
?>
</ul>
返回顶部
顶部