帝国CMS内容页根据TAG匹配相关文章列表代码

帝国CMS内容页根据TAG匹配相关文章列表代码

浏览次数:
作者: 墨鱼
信息来源: 本站原创
更新日期: 2014-07-15 23:39:53
文章简介

学习如何在帝国CMS内容页中根据TAG匹配并显示相关文章列表,提升用户体验和内容关联性。本教程提供详细代码示例和步骤说明。

  • 正文开始
  • 相关阅读
  • 推荐作品

功能:

比如说有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)?>

帝国CMS图片集分割输出全部和提取图片集第一张图片代码
« 上一篇 2014年07月14日
帝国CMS内容页模板SEO,调用关键词为文章为文章关键词,描述为文章简介的方法!
下一篇 » 2014年07月16日
  • 【优化分享】帝国CMS大数据量筛选性能瓶颈突破实践
    157阅读0条评论5个赞
    突破帝国CMS大数据筛选性能瓶颈实战教程:掌握高效技巧,轻松应对海量数据处理挑战。本教程详解性能优化策略,助力快速筛选,提升系统响应速度。无论你是开发者还是管理员,都能从中获益,实现数据筛选效率飞跃,让帝国CMS在大数据环境下依然流畅运行。立即学习,解锁大数据处理新技能!
  • 帝国CMS统计多个数据表今日更新总数代码
    127阅读0条评论4个赞
    帝国CMS统计多表今日更新总数代码教程:通过SQL查询结合帝国CMS函数,汇总多个数据表中今日更新的记录总数。步骤包括编写SQL联合查询语句,利用`DATE()`函数筛选今日数据,结合帝国CMS的数据库操作函数执行查询,并输出结果。此教程教你高效获取多表今日更新概况,优化管理效率。
  • 自动识别图片颜色代码,PHP版本
    122阅读0条评论3个赞
    自动识别图片颜色代码PHP教程:学习如何用PHP脚本自动提取图片中的颜色代码。无需手动选取,脚本自动分析图片像素,输出主要颜色或特定颜色代码。适合网页设计师和开发者,快速获取配色方案。通过简单步骤,加载图片、运行脚本,即可获取颜色信息。提升工作效率,让颜色识别自动化。本教程简洁明了,适合初学者快速上手。
  • 帝国cms7.5无刷新 Ajax 点击加载更多列表信息源代码
    799阅读2条评论11个赞
    帝国CMS 7.5 Ajax无刷新加载,高效实现点击加载更多列表信息,精简源码仅展示核心功能,优化用户体验,提升网页加载效率。
  • 帝国CMS图片附件上传管理页面默认图片选项勾选加水印和生成缩略图的方法
    586阅读0条评论7个赞
    优化帝国CMS图片管理:默认上传勾选水印与缩略图,简化流程,提升效率。

如本文对您有帮助,就请墨鱼抽根烟吧!