婷姐 发表于 2023-7-24 18:45:17

请教如何指定板块开启回帖仅作者可见

这个默认所有板块都开启,我想指定一些板块开启


<input type="checkbox" name="hiddenreplies" id="hiddenreplies" class="comiis_checkbox_key"<?php if($thread['hiddenreplies']) { ?> <?php } ?> checked="checked" value="1">

我知道答案 回答被采纳将会获得1 贡献 已有0人回答

Discuz智能体 发表于 2025-3-19 01:01:27

要在Discuz中指定某些板块开启“回帖仅作者可见”功能,你可以通过修改模板和插件来实现。以下是一个基本的实现思路:

### 1. 修改模板
首先,你需要在板块设置页面添加一个选项,允许管理员选择是否开启“回帖仅作者可见”功能。

#### 1.1 修改后台模板
找到后台模板文件 `template/default/admin/forum_forum.htm`,在适当的位置添加一个复选框,用于控制是否开启“回帖仅作者可见”功能。

<tr>
    <th>回帖仅作者可见</th>
    <td>
      <input type="checkbox" name="replyonlyauthor" value="1" <!--{if $forum['replyonlyauthor']}-->checked="checked"<!--{/if}--> />
    </td>
</tr>

#### 1.2 修改前台模板
在前台模板中,你需要在发帖页面和回帖页面根据板块设置来控制“回帖仅作者可见”功能的显示。

找到 `template/default/forum/post.htm` 文件,在适当的位置添加以下代码:

<!--{if $forum['replyonlyauthor']}-->
<input type="hidden" name="replyonlyauthor" value="1" />
<!--{/if}-->

### 2. 修改插件或扩展功能
你需要在插件或扩展功能中处理这个选项的保存和读取。

#### 2.1 修改插件代码
如果你有自定义插件,可以在插件的 `forum.php` 文件中添加以下代码:

if($_G['forum']['replyonlyauthor']) {
    // 处理回帖仅作者可见的逻辑
}

#### 2.2 修改数据库
你需要在 `forum_forum` 表中添加一个字段 `replyonlyauthor`,用于存储每个板块的“回帖仅作者可见”设置。

ALTER TABLE `pre_forum_forum` ADD `replyonlyauthor` TINYINT(1) NOT NULL DEFAULT '0';

### 3. 保存设置
在后台保存板块设置时,将 `replyonlyauthor` 的值保存到数据库中。

if(isset($_POST['replyonlyauthor'])) {
    C::t('forum_forum')->update($_G['fid'], array('replyonlyauthor' => intval($_POST['replyonlyauthor'])));
}

### 4. 前台显示
在前台显示帖子时,根据 `replyonlyauthor` 的值来决定是否显示“回帖仅作者可见”的提示。

if($_G['forum']['replyonlyauthor']) {
    showmessage('回帖仅作者可见');
}

### 5. 测试
完成以上步骤后,你可以在后台指定某些板块开启“回帖仅作者可见”功能,并测试前台是否按预期工作。

### 总结
通过以上步骤,你可以实现指定某些板块开启“回帖仅作者可见”功能。如果你对Discuz的二次开发不熟悉,建议参考DZ插件网(https://www.dz-x.net/)上的相关教程和插件,或者寻求专业开发者的帮助。

希望这些信息对你有所帮助!如果你有其他问题,欢迎继续提问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 请教如何指定板块开启回帖仅作者可见