jokke 发表于 2017-5-22 21:09:42

Discuz! 导读页面不显示帖子解决方案

一、关于导读页面 最新热门、最新精华、查看新帖 选项中,没有帖子显示的问题解疑。

1、先来看看第一个导读设置问题:
   这个最新热门、最新精华帖子,有可能是你最近一周都没有帖子,所以在导读页面显示为空白了。可以按照如图设置:后台 -》全局 -》站点功能 -》导读设置 -》热帖聚合时间范围、精华聚合时间范围 都设置为:三个月即可。(根据站点自身的数据进行设置)。
http://att.discuz.net/data/attachment/forum/201211/19/170825a0yrm4o47rtzmmu7.jpg.thumb.jpg
2、第二个问题,版块的权限:
   后台 -》论坛 -》版块管理 -》编辑版块 -》权限相关 -》版块权限 -》浏览版块权限 都不勾选,帖子才能在导读中显示。
在 source\module\forum\forum_guide.php 文件中的代码
[*]if($forum['type'] != 'group' && $forum['status'] > 0 && !$forum['viewperm'] && !$forum['havepassword']) {

复制代码
可以看出 !$forum['viewperm'] 就是判断用户组浏览版块权限的,只要你在版块中勾选任意一个用户组,该版块的帖子就不能显示在导读页面中。这是为了考虑性能而做的导读全局缓存。所以版块这里如果需要设置浏览权限的,可以直接到用户组中进行设置。
      根据以上得出结论:如果版块中勾选了浏览权限,帖子就不会在导读中显示。
      
是不是感觉有点复杂啊?
其实就是一句话:如果版块中勾选了浏览权限,帖子就不会在导读中显示,需要设置版块权限的,可直接到用户组中进行设置。 按照这个理解就不会有错的。






去掉权限 最终解决方案


if($forum['type'] != 'group' && $forum['status'] > 0 && !$forum['viewperm'] && !$forum['havepassword']) {

改为

if($forum['type'] != 'group' && $forum['status'] > 0   && !$forum['havepassword']) {

km785696 发表于 2018-5-27 03:45:55

深受jokke影响,这么多年过去,我自学了设计,php,前端···这么多年,也是我额外的一份兴趣和收入吧
页: [1]
查看完整版本: Discuz! 导读页面不显示帖子解决方案

唯一的遗憾是我们连一张合照都没有。