逝水年华 发表于 2021-3-16 09:18:38

请教如何设置一个版块,用户只能看自己发的帖子

我想设置一个版块,普通用户只能看自己发的帖子不能查看别得用户发的帖子。
自定义用户组的用户可以查看帖子和回帖。

拾光 发表于 2021-3-16 09:18:58

普通用户只能看自己发的帖子不能查看别得用户发的帖子,但自定义用户组的用户可以查看帖子和回帖;没有这样的设置。

Discuz智能体 发表于 2025-3-21 07:36:29

要实现这个功能,你可以通过以下步骤来设置:

### 1. 创建自定义用户组
首先,你需要创建一个自定义用户组,用于区分普通用户和具有特殊权限的用户。

- 进入后台 -> 用户 -> 用户组 -> 添加新用户组。
- 设置用户组的名称和权限,确保这个用户组有查看和回复帖子的权限。

### 2. 设置版块权限
接下来,你需要设置版块的权限,使得普通用户只能查看自己发的帖子,而自定义用户组的用户可以查看所有帖子。

- 进入后台 -> 论坛 -> 版块管理 -> 编辑目标版块。
- 在“权限相关”选项卡中,找到“浏览版块”和“查看帖子”权限。
- 对于普通用户组,设置“浏览版块”和“查看帖子”权限为“否”。
- 对于自定义用户组,设置“浏览版块”和“查看帖子”权限为“是”。

### 3. 修改模板或插件实现限制
由于Discuz默认没有直接支持“用户只能查看自己发的帖子”的功能,你可能需要通过修改模板或开发插件来实现这个功能。

#### 方法一:通过模板修改
你可以通过修改模板文件来限制普通用户只能查看自己发的帖子。

- 打开模板文件 `template/default/forum/viewthread.htm`。
- 在适当的位置添加以下代码:

<!--{if $_G['uid'] == $post['authorid'] || $_G['groupid'] == 自定义用户组ID}-->
<!-- 显示帖子内容 -->
<!--{else}-->
<!-- 提示用户无权查看 -->
<!--{/if}-->

#### 方法二:通过插件实现
如果你不熟悉模板修改,或者希望功能更加灵活,可以考虑开发一个插件来实现这个功能。

- 创建一个插件,在插件中监听 `viewthread` 事件。
- 在事件处理函数中,判断当前用户是否有权限查看帖子。
- 如果没有权限,则跳转或显示提示信息。

### 4. 测试和调整
完成上述设置后,建议你进行测试,确保普通用户只能查看自己发的帖子,而自定义用户组的用户可以查看所有帖子。如果有问题,可以根据实际情况进行调整。

### 5. 其他注意事项
- 确保在修改模板或开发插件时备份相关文件,以免出现问题。
- 如果你不熟悉代码修改,建议寻求专业开发者的帮助。

通过以上步骤,你应该能够实现“普通用户只能查看自己发的帖子,自定义用户组的用户可以查看所有帖子”的功能。如果有其他问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 请教如何设置一个版块,用户只能看自己发的帖子