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

  • 压缩包大小:Unkown
  • 开发语言:
  • 软件授权:
  • 更新时间:2022-12-31 19:28:50
  • 软件类别:
  • 相关链接:未知官方
  • 网友评分:
  • 应用平台:Win2000/WinXP/Win2003
  • 演示地址:演示地址

功能:

比如说有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里!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
functionuser_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($tagarras$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("selecttagid,numfrom{$dbtbpre}enewstagswheretagname='$v'");
            if($t[tagid]){
                $sql=$empire->query("selectidfrom{$dbtbpre}enewstagsdatawheretagid=$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){
                        break2;
                    }
                }
                if($t[num]>$num){
                    $linshi=$t[tagid];
                }
            }
}
if(count($arr)>0){
            $inid=implode(",",$arr);
            if(count($arr)<$limit&&$linshi){
                $sql=$empire->query("selectidfrom{$dbtbpre}enewstagsdatawheretagid=$linshiandidnotin($inid)");
                while($s=$empire->fetch($sql)){
                    $arr[]=$s[id];
                    if(count($arr)==$limit){
                        break;
                    }
                }
            }
            $inid=implode(",",$arr);
            $str="";
            $news=$empire->query("selectid,title,titleurl,titlepicfrom{$dbtbpre}ecms_{$tbname}whereidin($inid)");
            while($n=$empire->fetch($news)){
                $str.='<li><arel="nofollow noopener noreferrer" href="'.$n[titleurl].'">'.$n[title].'</a></li>';
            }  
        }
return$str;
    }
}
?>

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

1
<?=user_otherlink(5)?>

到此这篇关于帝国CMS内容页根据TAG匹配相关文章列表代码就介绍到这了。如果我想做成一件事,那么无论需要多长时间我都会努力去挤。更多相关帝国CMS内容页根据TAG匹配相关文章列表代码内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!

关键词: 帝国CMS

下载地址

下载失败问题?【我要反馈】

提示:好代码网站资源是由用户投稿上传,内容来自互联网,本站只做免费推荐用于学习分享,如有版权及其他问题,请联系小编处理!

下载“jQuery焦点无缝轮播图特效”地址:

  • 日榜
  • 周榜
  • 月榜

推荐下载

  • 开发手册
  • 常用软件