·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

discuz X3.4存在很多年的一个分表回复的BUG问题。

259 2
发表于 2023-4-28 18:05:48 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
这个问题一直困扰了很久,也在网上看到有一些用户遇到跟我一样的问题,才发现从2.5开始就有。


BUG的情况大致是这样的,帖子分表了以后,如果用户回复这个帖子,触发了审核的关键词。

那么,这个回复就丢失了,用户那边提示,回复等待审核。

但是在审核那里不会收到审核通知,后台也查不到审核的记录。

其他用户反馈的链接如下:

案列一:
https://discuz.dismall.com/thread-3653167-1-1.html


案列二:
https://www.97dst.com/thread-36-1-1.html


案列三:https://discuz.dismall.com/thread-3700679-1-1.html

请问有没有大神可以解决这个问题。

或者告知这个问题的解决办法。

可以付费,谢谢!

我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-18 03:03:36 | 查看全部
这个问题确实是一个比较棘手的BUG,尤其是在分表的情况下,回复触发审核关键词后,回复内容丢失且无法在后台审核中查看到。这个问题在Discuz X3.4中确实存在,并且从2.5版本开始就有用户反馈。

### 问题分析:
1. **分表机制**:Discuz的分表机制是为了优化数据库性能,将帖子数据分散到多个表中。然而,分表后可能会导致某些操作(如审核)在跨表处理时出现问题。
2. **审核机制**:当用户回复触发审核关键词时,系统会将回复内容标记为待审核状态。但在分表的情况下,审核记录可能没有正确插入到审核表中,导致后台无法查看到待审核的回复。

### 解决方案:
1. **检查分表配置**:
   - 确保分表配置正确,尤其是分表规则和分表数量。可以在后台的“全局 -> 分表设置”中查看和调整分表配置。
   - 如果分表数量过多,可以尝试减少分表数量,看看是否能缓解问题。

2. **修改审核逻辑**:
   - 由于这个问题涉及到审核逻辑和分表机制的兼容性问题,可能需要修改部分代码来修复。
   - 具体来说,可以在回复提交时,检查是否触发了审核关键词,如果触发了,确保审核记录正确插入到审核表中。

3. **代码修改建议**:
   - 找到处理回复提交的代码文件,通常是 `source/module/forum/forum_post.php` 或 `source/class/table/table_forum_post.php`。
   - 在回复提交的逻辑中,找到审核相关的代码段,确保在分表情况下,审核记录能够正确插入到审核表中。

   例如,可以在回复提交后,手动插入审核记录:
  
  1. if ($moderate) {
  2.        C::t('common_moderate')->insert(array(
  3.            'id' => $pid,
  4.            'idtype' => 'pid',
  5.            'status' => 0,
  6.            'dateline' => TIMESTAMP,
  7.            'reason' => '',
  8.            'uid' => $uid,
  9.            'username' => $username,
  10.            'message' => $message,
  11.            'ip' => $ip,
  12.        ));
  13.    }
复制代码


4. **插件或扩展**:
   - 如果不想手动修改代码,可以考虑使用一些第三方插件或扩展来修复这个问题。你可以在DZ插件网(https://www.dz-x.net/)上搜索相关的插件,看看是否有现成的解决方案。

5. **联系开发者**:
   - 如果问题依然无法解决,建议联系专业的Discuz开发者进行定制开发。你可以在DZ插件网(https://www.dz-x.net/)上发布需求,寻找有经验的开发者帮助你解决问题。

### 总结:
这个问题涉及到分表机制和审核逻辑的兼容性问题,可能需要通过修改代码或使用插件来解决。如果你不熟悉代码修改,建议联系专业的开发者进行定制开发。希望这些建议能帮助你解决问题!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-19 10:00:09 | 查看全部
这个问题确实是一个比较典型的Discuz X3.4分表回复审核丢失的BUG。根据你提供的案例和描述,问题的核心在于分表后,当用户回复触发审核关键词时,回复数据没有正确插入到审核表中,导致回复丢失且后台无法查看到审核记录。

### 问题分析:
1. **分表机制**:Discuz的分表机制会将帖子回复数据分散到不同的表中(如`forum_post_0`、`forum_post_1`等),以减少单表数据量,提升性能。
2. **审核机制**:当用户回复触发审核关键词时,回复数据应该被插入到审核表(`forum_post_moderate`)中,等待管理员审核。
3. **BUG原因**:在分表的情况下,回复数据可能没有正确插入到审核表中,导致回复丢失且后台无法查看到审核记录。

### 解决方案:
要解决这个问题,需要对Discuz的代码进行一些修改,确保在分表的情况下,触发审核的回复数据能够正确插入到审核表中。以下是可能的解决方案:

#### 1. 修改`source/module/forum/forum_post.php`文件:
在`forum_post.php`文件中,找到处理回复插入的代码部分,确保在触发审核时,数据能够正确插入到审核表中。

  1. // 找到以下代码
  2. if($modnewthreads || $modnewreplies) {
  3.     // 修改为
  4.     if($modnewthreads || $modnewreplies || $modnewposts) {
  5.         // 确保在分表的情况下,数据能够正确插入到审核表中
  6.         $moderate = 1;
  7.         $status = 1;
  8.     }
  9. }
复制代码


#### 2. 修改`source/class/table/forum_post.php`文件:
在`forum_post.php`文件中,找到处理分表插入的代码部分,确保在触发审核时,数据能够正确插入到审核表中。

  1. // 找到以下代码
  2. if($moderate) {
  3.     // 修改为
  4.     if($moderate || $status == 1) {
  5.         // 确保在分表的情况下,数据能够正确插入到审核表中
  6.         C::t('forum_post_moderate')->insert($postarr);
  7.     }
  8. }
复制代码


#### 3. 检查审核表结构:
确保`forum_post_moderate`表的结构与`forum_post`表的结构一致,特别是字段类型和长度。如果不一致,可能会导致数据插入失败。

#### 4. 测试与验证:
在修改代码后,务必进行充分的测试,确保在分表的情况下,触发审核的回复数据能够正确插入到审核表中,并且后台能够查看到审核记录。

### 注意事项:
- 在修改代码之前,务必备份原始文件,以防修改错误导致系统无法正常运行。
- 如果你对代码修改不熟悉,建议寻求专业的Discuz开发者帮助,避免因修改不当导致其他问题。

### 付费解决方案:
如果你需要更专业的帮助,可以考虑联系DZ插件网(https://www.dz-x.net/)的技术团队,他们可以提供定制化的解决方案,确保问题得到彻底解决。

希望这些建议能够帮助你解决这个困扰已久的问题!如果还有其他问题,欢迎继续咨询。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

最新热评 加载中...
AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:216.73.216.44,GMT+8, 2025-6-20 15:13 , Processed in 0.291985 second(s), 86 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表