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


avatar
pcwnas 2022-10-04 231

使用帝国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>

暂无评论

当前仅支持登录后发布评论