您现在的位置是:首页 > cms教程 > 帝国CMS教程帝国CMS教程

帝国CMS内容页怎么根据TAG匹配相关文章的方法

芍语2023-01-20帝国CMS教程已有人查阅

导读比如说有3个TAG,每个TAG下有4篇文章,现在指定要显示10篇文章,那么每个TAG要拿出4篇,共有12篇文章,最终会打乱这12篇文章,然后取10篇

功能:
比如说有3个TAG,每个TAG下有4篇文章,现在指定要显示10篇文章,那么每个TAG要拿出4篇,共有12篇文章,最终会打乱这12篇文章,然后取10篇
3个TAG,每个TAG下有3篇文章,现在指定要显示10篇文章,那么每个TAG要拿出3篇文章,共有9篇文章
3个TAG,A有2篇文章,B有5篇文章,C有3篇文章,现在要显示10篇文章,那么A拿出2篇文章,B拿出5篇文章,C拿出3篇文章,共有10篇文章
如果 A、B、C中除了当前文章,还有相同的文章,那么会扣除重复的那篇文章,只取一次。所以指定的数量会有偏差
以下代码放到/e/class/userfun.php里!

<?php
function user_otherlink($limit=5){
	global $dbtbpre,$empire,$navinfor,$class_r;
    if($navinfor[infotags]){
    	$classid=(int)$classid;
        $limit=(int)$limit;
        $tbname=$class_r[$navinfor[classid]][tbname];
        $tagarr=explode(",",$navinfor[infotags]);
        $arr=array();
        $num=ceil($limit/count($tagarr));
        foreach($tagarr as $k=>$v){
			if(count($tagarr)==$k+1){
				$num=$limit-count($arr);
			}else{
				if($i<$num){
					$num=ceil(($limit-count($arr))/count($tagarr));
				}		
			}
            $t=$empire->fetch1("select tagid,num from {$dbtbpre}enewstags where tagname='$v'");
			if($t[tagid]){
				$sql=$empire->query("select id from {$dbtbpre}enewstagsdata where tagid=$t[tagid]");
				$i=0;
				while($s=$empire->fetch($sql)){
					if(in_array($s[id],$arr)||$s[id]==$navinfor[id]){
						continue;
					}else{
						$arr[]=$s[id];
						$i++;
					}
					if($i==$num){
						break;
					}
					if(count($arr)==$limit){
						break 2;
					}
				}
				if($t[num]>$num){
					$linshi=$t[tagid];
				}
			} 
        }
        if(count($arr)>0){
			$inid=implode(",",$arr);
			if(count($arr)<$limit&&$linshi){
				$sql=$empire->query("select id from {$dbtbpre}enewstagsdata where tagid=$linshi and id not in($inid)");
				while($s=$empire->fetch($sql)){
					$arr[]=$s[id];
					if(count($arr)==$limit){
						break;
					}
				}
			}
			$inid=implode(",",$arr);
			$str="";
			$news=$empire->query("select id,title,titleurl,titlepic from {$dbtbpre}ecms_{$tbname} where id in($inid)");
			while($n=$empire->fetch($news)){
				$str.='<li><a href="'.$n[titleurl].'">'.$n[title].'</a></li>';
			}	
		}
        return $str;
   	}
}
?>

内容页用以下代码调用:5为显示数量自己改

<?=user_otherlink(5)?>

本文标签:

很赞哦! ()

相关源码

  • (自适应)品牌策划高端设计公司网站pbootcms模板免费下载本模板为品牌策划与设计公司打造,基于PbootCMS内核开发,充分考虑了创意设计行业的视觉展示需求。模板设计风格现代简约,布局合理清晰,呈现设计作品与专业服务,帮助设计公司展示创意实力并吸引潜在客户。查看源码
  • (自适应)简繁双语响应式服装服饰西装工装校服定制pbootcms模板本模板基于PbootCMS内核开发,为服装服饰行业量身打造,尤其适合西装定制、工装生产、校服订制等服装类企业使用。模板采用响应式布局设计,确保在手机、平板、电脑查看源码
  • 响应式茶叶茶道pbootcms网站模板源码(自适应手机端)棕色复古茶具主题的响应式网站模板,为茶叶茶道企业设计,同时支持古玩字画、艺术文化等行业的快速适配,通过替换文字图片即可转型为其他行业官网,大幅降低开发成本。查看源码
  • (PC+WAP)五金机械设备营销型模板下载带在线留言为机械设备制造商设计的营销型模板,集成产品参数对比系统、产品展示模块和询价管理功能。采用PbootCMS开发内核,PHP7+运行环境。手工编写语义化HTML5结构,CSS3动画优化交互体验。查看源码
  • (自适应)绿色园林建筑花卉园艺艺术模板免费下载为景观设计及园艺企业打造的响应式网站框架,基于PbootCMS系统开发,帮助传统园林行业建立现代化数字展示平台。采用标准DIV+CSS前端架构,代码精简无冗余。查看源码
  • (自适应)宽屏大气的净水器智能电子设备网站pbootcms源码下载本模板基于PbootCMS内核开发,为净水器设备、智能电子设备企业量身打造,采用响应式设计技术,可快速构建专业级企业官网。通过本模板可高效展示产品技术参数、解决方案及企业服务优势。查看源码
分享笔记 (共有 篇笔记)
验证码: