陈奇网络工作室

如何让帝国cms文章页面根据tag标签调用文章

网友方法1(白石头博客):

说明:这个方法经过测试有效,不足之处是格式比较固定,属于标题+链接形式,无法调用标题+标题图+描述形式,如果只是调用标题列表完全够用,如果要调用文章列表形式还需要在进行下代码调整,至于要如何调整,就需要各位网友自己研究下了。

原文内容:

用tag调用相关文章的方法在帝国官方论坛上有人发过方法,但所使用的函数效率太低而且无法制定参数,不好用。下面介绍的方法就是利用tag调用相关文章,非常好用。

帝国CMS如何通过TAG调用相关文章的方法:

自定义函数user_OtherLink ,将此函数放入 e\class\userfun.php 文件中(说明:此文件为帝国cms的自定义函数文件,需要注意的是如果文件中已经有内容,在文件末尾加上新加入的代码即可,不过新手需要注意php的结尾标签,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)?>

此方法与帝国cms本身提供的调用方法不同,只需要提供调用条数、指定栏目id、模型id(比如新闻模型、下载模型等),相对可操作灵活性还有点不足。

本站提供另一种思路:

1:帝国cms默认提供的是按文章关键词进行相关文章调用,这个在后台里是可以设置的,那么我们可以考虑对这个代码的相关处理操作进行调整,猜测代码中肯定有关于接入点的相关定义语句,通过修改keywords和tags的相关数据库查询实现变更,具体方法目前本站还需要研究,等有结果了会更新在此处。

编辑:陈奇;本文涉及的方法和代码知识产权归原作者所有,如需转载请注明本页面链接地址,侵删微信:354638784.

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3