夜间模式
🌓黑暗模式

用户名  找回密码
 立即注册
帖子
热搜: discuz sclub 夜读
查看: 1623|回复: 0

Discuz 相关帖子功能修改随机显示不依赖标签

[复制链接]
  • TA的每日心情
    擦汗
    2023-7-12 20:55
  • 签到天数: 8 天

    连续签到: 8 天

    [LV.3]偶尔看看II

    122

    主题

    4

    回帖

    2672

    积分

    管理员

    积分
    2672

    活跃会员热心会员灌水之王突出贡献

    发表于 2022-5-4 23:58:58 | 显示全部楼层 |阅读模式

    打开 source\module\forum\forum_viewthread.php 文件,查找:

    1.                         if($post['tags']) {
    2.                                 $post['relateitem'] = getrelateitem($post['tags'], $post['tid'], $_G['setting']['relatenum'], $_G['setting']['relatetime']);
    3.                         }
    复制代码


    换行添加:

    1.                         $post['relateitem'] = getrelateitemx($post['fid'], $_G['setting']['relatenum']);
    复制代码


    再查找:

    1. function getrelateitem($tagarray, $tid, $relatenum, $relatetime, $relatecache = '', $type = 'tid') {
    2.         $tagidarray = $relatearray = $relateitem = array();
    3.         $updatecache = 0;
    4.         $limit = $relatenum;
    5.         if(!$limit) {
    6.                 return '';
    7.         }
    8.         foreach($tagarray as $var) {
    9.                 $tagidarray[] = $var['0'];
    10.         }
    11.         if(!$tagidarray) {
    12.                 return '';
    13.         }
    14.         if(empty($relatecache)) {
    15.                 $thread = C::t('forum_thread')->fetch_thread($tid);
    16.                 $relatecache = $thread['relatebytag'];
    17.         }
    18.         if($relatecache) {
    19.                 $relatecache = explode("\t", $relatecache);
    20.                 if(TIMESTAMP > $relatecache[0] + $relatetime * 60) {
    21.                         $updatecache = 1;
    22.                 } else {
    23.                         if(!empty($relatecache[1])) {
    24.                                 $relatearray = explode(',', $relatecache[1]);
    25.                         }
    26.                 }
    27.         } else {
    28.                 $updatecache = 1;
    29.         }
    30.         if($updatecache) {
    31.                 $query = C::t('common_tagitem')->select($tagidarray, $tid, $type, 'itemid', 'DESC', $limit, 0, '<>');
    32.                 foreach($query as $result) {
    33.                         if($result['itemid']) {
    34.                                 $relatearray[] = $result['itemid'];
    35.                         }
    36.                 }
    37.                 if($relatearray) {
    38.                         $relatebytag = implode(',', $relatearray);
    39.                 }
    40.                 C::t('forum_thread')->update($tid, array('relatebytag'=>TIMESTAMP."\t".$relatebytag));
    41.         }


    42.         if(!empty($relatearray)) {
    43.                 rsort($relatearray);
    44.                 foreach(C::t('forum_thread')->fetch_all_by_tid($relatearray) as $result) {
    45.                         if($result['displayorder'] >= 0) {
    46.                                 $relateitem[] = $result;
    47.                         }
    48.                 }
    49.         }
    50.         return $relateitem;
    51. }
    复制代码


    换行添加:

    1. function getrelateitemx($fid, $relatenum)
    2. {
    3.     $limit = $relatenum;
    4.     if (!$limit) {
    5.         return '';
    6.     }

    7.     $hotlist=DB::fetch_all("SELECT tid,subject,fid FROM ".DB::table('forum_thread')." where fid=$fid and displayorder>=0 order by rand() LIMIT 0,$limit");
    8.         
    9.     return $hotlist;
    10. }
    复制代码


    然后到论坛后台界面设置相关帖子数量即可。




    上一篇:Discuz! 使用电脑访问discuz手机版或触屏版
    下一篇:如何在 discuz 帖子里添加 APlayer 音乐播放器
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    返回列表
    正在加载中……