帝国cms 列表页调用子栏目,没有则不显示栏目名称
来源:网络作者:站长
使用帝国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>
你觉得文章内容怎么样