BoonKiong.com2026™

人气 12

Discuz! 相关帖子功能修改随机显示不依赖标签 [复制链接]

boonkiong 昨天 21:38

打开 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. }
复制代码


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


您需要登录后才可以回帖 登录 | 立即注册

您还未登录

随手拍~~:

置顶文章~~:

热度会员~~:

boonkiongadminJustinIroms

手机版|小黑屋|网站地图|文强阁

GMT+8, 2026-7-12 05:09 , Processed in 0.030437 second(s), 23 queries .

Powered by Discuz! X3.5  © 2001-2017 Discuz Team.