详情页

帝国CMS实现通过用tag标签调用相关文章

时间:2024年03月07日

编辑:佚名

用tag调用相关文章的方法在帝国官方论坛上有人发过方法,但所使用的函数效率太低而且无法制定参数,不好用。东坡网现在使用的也是利用tag调用相关文章,非常好用。
一、自定义函数
自定义函数user_OtherLink ,将此函数放入 /e/class/userfun.php 文件中。
  //根据tag获取相关信息    
function user_OtherLink($num,$classid=0,$mid=0){    
global $dbtbpre,$empire,$navinfor,$class_r;    
if(empty($navinfor['infotags'])){    
return '暂无相关信息';    
}    
if($mid&&$classid&&$class_r[$classid]['modid']!=$mid){    
return '暂无相关信息';    
}    
$tr=$empire->fetch1("select otherlinktemp,otherlinktempsub,otherlinktempdate from ".GetTemptb("enewspubtemp")." limit 1");    
$temp_r=explode("[!--empirenews.listtemp--]",$tr['otherlinktemp']);    
$str='';    
$tagsql=$empire->query("select * from {$dbtbpre}enewstagsdata where id='$navinfor[id]' and classid='$navinfor[classid]'");    
$i=0;    
$isprint=array();    
while($tagr=$empire->fetch($tagsql)){    
if($i>=$num){    
break;    
}    
$gsql=$empire->query("select * from {$dbtbpre}enewstagsdata where tagid='$tagr[tagid]'");    
while($gr=$empire->fetch($gsql)){    
$myprint='id'.$gr['id'].'class'.$gr['classid'];    
if(array_search($myprint,$isprint)!==false){    
continue;    
}    
$isprint[]=$myprint;    
if($classid&&$classid!=$gr['classid']){    
continue;    
}    
if($mid&&$mid!=$gr['mid']){    
continue;    
}    
if($gr['id']==$navinfor['id']&&$gr['classid']==$navinfor['classid']){    
continue;    
}    
$tbname=$class_r[$gr['classid']]['tbname'];    
if(!$tbname||InfoIsInTable($tbname)){    
continue;    
}    
$r=$empire->fetch1("select * from {$dbtbpre}ecms_".$tbname." where id='$gr[id]' limit 1");    
if(!$r['id']){    
continue;    
}
$str.=RepOtherTemp($temp_r[1],$r,$tr);    
$i+=1;    
if($i>=$num){    
break;    
}    
}    
}    
$keyboardtext=$temp_r[0].$str.$temp_r[2];    
if($str){    
return $keyboardtext;    
}else{    
return '暂无相关信息';    
}    
}
全选代码复制
二、 使用方法:
函数说明:user_OtherLink(调用条数,指定栏目id,指定模型id) ;
相关文章模板采用的是公共模板里的相关信息模板。
调用示例:
<?=user_OtherLink(10,0,1)?>
相关文章
猜你需要