admin 发表于 2014-10-14 17:00:46

帝国cms调用栏目的子栏目函数

帝国cms调用栏目下的子栏目函数

本文关键字词:帝国cms函数,帝国cms自定义函数,帝国cms调用子栏目

本标签可以实现传入父栏目id,调用条数,使用模板等值实现调用指定栏目下的子栏目,没官方的标签功能强大,但是使用比官方的方便,不用再做标签模板,很实用!

在userfun.php中加入函数:
/*调用栏目下的一级子栏目
$classid为要调用的父栏目id
$limit为要调用的条数
$temp为使用的模板({classurl}是栏目连接{classname}是栏目名称 {bname}是栏目别名)
*/
function fc_system_classsub1($classid,$limit,$temp=''){
global $empire,$dbtbpre,$navclassid,$class_r,$public_r,$navinfor;
$classid=(int)$classid;
$limit=(int)$limit;
if(!$classid||!$limit||!$temp){
return FALSE;
}else{
$class_sql=$empire->query('select classid,classname,bname from '.$dbtbpre.'enewsclass where bclassid='.$classid.' and showclass=0 order by myorder limit '.$limit.'');
while($class_row=$empire->fetch($class_sql)){
$classurl=sys_ReturnBqClassUrl($class_r[$class_row['classid']]);
$new_temp=str_replace('{classurl}',$classurl,$temp);
$new_temp=str_replace('{classname}',$class_row['classname'],$new_temp);
$new_temp=str_replace('{bname}',$class_row['bname'],$new_temp);
if($class_r[$navclassid]['bclassid']==$classid && $class_row['classid']!=$navclassid){//同级判断
$new_temp=preg_replace('/\s+class="+"/','',$new_temp);
}elseif($class_r[$navclassid]['bclassid']!=$class_row['classid'] && $class_row['classid']!=$navclassid){//子级及内容页判断高亮
$new_temp=preg_replace('/\s+class="+"/','',$new_temp);
}
$classsub1.=$new_temp.PHP_EOL;
}
return $classsub1;
}
}
在模板中调用: <?=fc_system_classsub1(父栏目ID,调用条数,'使用模板代码,{classurl}是连接的意思,{classname}是栏目名称的意思, {bname}就是栏目别名的意思');?>

比如例子1: <?=fc_system_classsub1(1,9,'<li class="on"><a href="{classurl}">{classname}</a></li>');?>
解释:调用父栏目ID1下的子栏目,条数为9,模版为<li class="on"><a href="{classurl}">{classname}</a></li>,模板中调用的是栏目的名字,其中 class="on" 是当前高亮的css类。

例子2: <?=fc_system_classsub1(1,9,'<li class="on"><a href="{classurl}">{bname}</a></li>');?>
解释:这里调用的是栏目别名显示。

其他用法自己可以根据代码再自行修改。
页: [1]
查看完整版本: 帝国cms调用栏目的子栏目函数