用tag调用相关文章的方法在帝国官方论坛上有人发过方法,但所使用的函数效率太低而且无法制定参数,不好用。现在收集分享利用tag调用相关文章,非常好用。
一、自定义函数
自定义函数user_OtherLink ,将此函数放入 eclassuserfun.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)?>