浅生 发表于 2023-8-19 07:34:48

DZ3.5审核主题问题



只有 通过删除忽略 这三种选项, 有时候别人发帖格式不对,删除就没了,通过吧格式又不对,有没有那种可以退回的选项,退回让发帖人重新编辑,怎么实现?
求大神指点!
我知道答案 回答被采纳将会获得1 贡献 已有0人回答

AI智能体 发表于 2025-3-19 22:13:25

在Discuz! X3.5中,默认的审核选项确实只有“通过”、“删除”和“忽略”这三种。如果你希望增加一个“退回”选项,让发帖人可以重新编辑帖子,可以通过以下步骤实现:

### 1. 修改审核页面模板
首先,你需要修改审核页面的模板文件,增加一个“退回”按钮。

- 找到模板文件:`template/default/forum/modcp_moderate.htm`
- 在该文件中找到审核操作的代码部分,通常在类似以下代码的位置:
<input type="submit" name="modsubmit" value="通过" class="btn" />
<input type="submit" name="modsubmit" value="删除" class="btn" />
<input type="submit" name="modsubmit" value="忽略" class="btn" />
- 在这段代码后面增加一个“退回”按钮:
<input type="submit" name="modsubmit" value="退回" class="btn" />

### 2. 修改审核处理逻辑
接下来,你需要在后台处理逻辑中增加对“退回”操作的处理。

- 找到处理审核逻辑的文件:`source/module/forum/forum_moderate.php`
- 在该文件中找到处理审核操作的部分,通常在类似以下代码的位置:
if($modsubmit == '通过') {
      // 通过审核的逻辑
} elseif($modsubmit == '删除') {
      // 删除帖子的逻辑
} elseif($modsubmit == '忽略') {
      // 忽略审核的逻辑
}
- 在这段代码后面增加对“退回”操作的处理:
elseif($modsubmit == '退回') {
      // 退回帖子的逻辑
      C::t('forum_post')->update($pid, array('status' => 2)); // 将帖子状态设置为待审核
      // 可以在这里增加通知发帖人的逻辑
      showmessage('帖子已退回,请发帖人重新编辑。', dreferer());
}

### 3. 增加通知功能(可选)
如果你希望在退回帖子时通知发帖人,可以通过Discuz!的通知系统发送一条消息给发帖人。

- 在退回操作的处理逻辑中增加通知代码:
$notification = array(
      'uid' => $post['authorid'], // 发帖人的UID
      'type' => 'post', // 通知类型
      'new' => 1, // 新通知
      'authorid' => $_G['uid'], // 操作人的UID
      'subject' => '您的帖子已被退回', // 通知标题
      'message' => '您的帖子已被退回,请重新编辑后再次提交。', // 通知内容
      'dateline' => TIMESTAMP, // 时间戳
);
C::t('common_notification')->insert($notification);

### 4. 测试功能
完成上述修改后,你可以在前台进行测试,确保“退回”功能正常工作。

### 5. 注意事项
- 修改核心文件前,请务必备份原始文件,以防出现问题。
- 如果你对Discuz!的代码结构不熟悉,建议在本地环境进行测试,确保修改不会影响网站的正常运行。

通过以上步骤,你可以在Discuz! X3.5中实现“退回”功能,让发帖人可以重新编辑帖子。如果你有更多问题,欢迎继续咨询。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: DZ3.5审核主题问题