帝国CMS中判断栏目有无下级栏目的两种方法
2025-01-07
在帝国CMS中,可以使用 SQL 语句结合灵动标签或其他模板标签来实现对栏目是否有下级栏目的判断。以下是一个使用灵动标签的示例:
模板由于种种神(dan)奇(teng)的要求需要完美判断一个栏目有没有下级栏目,于是就有了下面的代码:
$arr=array();
$arr1=$empire->query(select classid,classname,sonclass,featherclass,islast from {$dbtbpre}enewsclass);
while($arr2=$empire->fetch($arr1)){
$arr[]=$arr2['featherclass'];
}
$arr=implode(,,$arr);
上面总体代码含义为,定义一个数组变量,查询所有栏目,循环输出父栏目featherclass字段数据到数组,数组转为字符串。那么这里就会得到所有是父栏目的ID:各种|1|2|,|5|26|类似这样的一堆的字符串了!那么接下来就好办了。
$zi=|$s1[classid]|;
if(strstr($arr,$zi)){
$down1='有下级栏目';
}
获取到栏目ID:比如|2|,判断这个ID|2|在字符串中存在,那么他肯定是父栏目了!经过测试这个是最准确的判断方法,虽然比较繁琐,但是满足开发需求!期待其他高手补充!
[e:loop={"select bclassid,classid,classname from phome_enewsclass where bclassid=0 order by classid",0,24,0}]
<?php
$current_classid = $bqr['classid'];
$subclass_sql = "select count(*) as sub_count from phome_enewsclass where bclassid = ".$current_classid;
$subclass_num = $empire->gettotal($subclass_sql);
if($subclass_num > 0) {
echo $bqr['classname']." 有下级栏目<br>";
} else {
echo $bqr['classname']." 无下级栏目<br>";
}
?>
[/e:loop]
另外一种方法:
帝国CMS如果要判断栏目有没有下级栏目通用的方法是判断islast字段,但是这个字段只能判断这个栏目下面有没有最终栏目,不能判断这个栏目下面有没有一般栏目。所以用islast字段判断的方法就不行了!模板由于种种神(dan)奇(teng)的要求需要完美判断一个栏目有没有下级栏目,于是就有了下面的代码:
$arr=array();
$arr1=$empire->query(select classid,classname,sonclass,featherclass,islast from {$dbtbpre}enewsclass);
while($arr2=$empire->fetch($arr1)){
$arr[]=$arr2['featherclass'];
}
$arr=implode(,,$arr);
上面总体代码含义为,定义一个数组变量,查询所有栏目,循环输出父栏目featherclass字段数据到数组,数组转为字符串。那么这里就会得到所有是父栏目的ID:各种|1|2|,|5|26|类似这样的一堆的字符串了!那么接下来就好办了。
$zi=|$s1[classid]|;
if(strstr($arr,$zi)){
$down1='有下级栏目';
}
获取到栏目ID:比如|2|,判断这个ID|2|在字符串中存在,那么他肯定是父栏目了!经过测试这个是最准确的判断方法,虽然比较繁琐,但是满足开发需求!期待其他高手补充!
声明:本文来自用户分享和网络收集,仅供学习与参考,测试请备份。