Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

导读-最新发表 里有时不显示某些版块帖子问题

[复制链接]
suyetai 发表于 2015-10-20 19:50:38 | 显示全部楼层 |阅读模式
经常收到反应说新发帖子在导读的最新发表里没有,之前一直没在意,今天特意测试了一下,发现是 source/module/forum/forum_guide.php 文件里的$fids 数组有问题; 该数组用于记录正常显示的普通版块;如果一篇新帖所在的版块未在该数组内,就不会展示在导读里边;

在该文件164行后,也就是通过以下代码处理后
  1. foreach($_G['cache']['forums'] as $fid => $forum) {
  2.   if($forum['type'] != 'group' && $forum['status'] > 0 && !$forum['viewperm'] && !$forum['havepassword']) {
  3.     $fids[] = $fid;
  4.   }
  5. }
复制代码
$fids数组的值类似为
  1. Array
  2. (
  3.     [0] => 14
  4.     [1] => 4
  5.     [2] => 15
  6.     [3] => 60
  7.     [4] => 50
  8.     [5] => 157
  9.     [6] => 74
  10.     [7] => 6
  11.     [8] => 67
  12.     [9] => 24
  13.     [10] => 41
  14.     [11] => 51
  15.     [12] => 26
  16.     [13] => 46
  17.     [14] => 27
  18.     [15] => 28
  19.     [16] => 69
  20.     [17] => 158
  21.     [18] => 10
  22.     [19] => 70
  23.     [20] => 152
  24.     [21] => 71
  25.     [22] => 73
  26.     [23] => 72
  27.     [24] => 31
  28.     [25] => 61
  29.     [26] => 153
  30.     [27] => 76
  31.     [28] => 62
  32.     [29] => 30
  33. )
复制代码
但经过194-197行代码处理后
  1. if($tids || ($n >= $start && $n < ($start + $num))) {
  2.   $list[$thread[tid]] = $thread;
  3.   $fids[$thread[fid]] = $thread['fid'];
  4. }
复制代码
$fids的值就可能变成
  1. Array
  2. (
  3.     [0] => 14
  4.     [1] => 4
  5.     [2] => 15
  6.     [3] => 60
  7.     [4] => 4
  8.     [5] => 157
  9.     [6] => 6
  10.     [7] => 6
  11.     [8] => 67
  12.     [9] => 24
  13.     [10] => 10
  14.     [11] => 51
  15.     [12] => 26
  16.     [13] => 46
  17.     [14] => 14
  18.     [15] => 15
  19.     [16] => 69
  20.     [17] => 158
  21.     [18] => 10
  22.     [19] => 70
  23.     [20] => 152
  24.     [21] => 71
  25.     [22] => 73
  26.     [23] => 72
  27.     [24] => 31
  28.     [25] => 61
  29.     [26] => 153
  30.     [27] => 76
  31.     [28] => 62
  32.     [29] => 30
  33.     [158] => 158
  34.     [30] => 30
  35.     [61] => 61
  36.     [70] => 70
  37.     [62] => 62
  38.     [153] => 153
  39.     [157] => 157
  40. )
复制代码
导致$fids丢失一些版块ID,当然被丢失版块内的帖子也就不会在导读里展示了,我目前的处理方法就是将
  1. $fids[$thread[fid]] = $thread['fid'];
复制代码
这行注释掉;







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

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-28 20:10 , Processed in 0.057173 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表