帝国CMS 通过相关信息模板实现用tag调用相关文章

2024年01月16日7

用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)?>

点赞0

喜欢这篇文章?打赏一下作者吧

  • 支付宝

    支付宝二维码

  • 微信

    微信二维码

你觉得文章内容怎么样

您的评论会在审核后被公开。

7 人参与,0 条评论

TOP