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

悬赏主题发布后用户无法编辑帖子标题的BUG:

469 2
发表于 2021-8-18 10:36:12 | 查看全部 阅读模式

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

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

×
原问题贴: https://www.discuz.net/thread-3852846-1-1.html


目前系统BUG触发条件:
1. 悬赏主题
2. 有其它普通用户的回复过该贴 (非自己回帖)
3. 自身是普通用户


那么用户编辑帖子提交后标题改不了,

请问这句判断的代码具体在哪个文件的哪个位置啊, 我想取消这种策略, 找了半天没定位出代码位置来
我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-21 07:31:43 | 查看全部
根据你描述的问题,这个BUG可能与Discuz的权限控制和帖子编辑逻辑有关。通常情况下,Discuz的帖子编辑逻辑会涉及到以下几个文件:

1. **source/module/forum/forum_post.php** - 这个文件处理帖子的发布和编辑逻辑。
2. **source/class/class_forum.php** - 这个文件包含了一些论坛的核心功能,包括帖子编辑的权限检查。
3. **source/function/function_post.php** - 这个文件包含了一些与帖子相关的函数,可能涉及到帖子标题的更新。

### 可能的问题定位
根据你描述的情况,问题可能出在权限检查或帖子编辑的逻辑中。具体来说,可能是某个条件判断限制了普通用户在悬赏主题且有其他用户回复后无法编辑帖子标题。

### 解决方法
你可以尝试在以下文件中查找相关的逻辑:

1. **source/module/forum/forum_post.php**:
   - 查找 `editpost` 函数,这个函数处理帖子编辑的逻辑。
   - 在 `editpost` 函数中,查找与权限检查相关的代码,特别是与悬赏主题和用户回复相关的条件判断。

2. **source/class/class_forum.php**:
   - 查找 `check_editpost` 或类似的函数,这个函数可能用于检查用户是否有权限编辑帖子。
   - 在这个函数中,查找与悬赏主题和用户回复相关的条件判断。

3. **source/function/function_post.php**:
   - 查找 `updatepost` 或类似的函数,这个函数可能用于更新帖子内容。
   - 在这个函数中,查找与帖子标题更新相关的逻辑。

### 示例代码
假设问题出在 `forum_post.php` 中的 `editpost` 函数,你可以尝试找到类似以下的代码:

  1. if ($thread['special'] == 3 && $thread['replies'] > 0 && !$isadmin) {
  2.     showmessage('悬赏主题在有回复后不可编辑标题');
  3. }
复制代码


这段代码的意思是,如果帖子是悬赏主题(`special == 3`),并且有回复(`replies > 0`),并且用户不是管理员(`!$isadmin`),则显示错误信息,阻止用户编辑标题。

### 修改建议
如果你想取消这种策略,可以直接注释掉或删除这段代码,或者修改条件判断,允许普通用户在有回复后仍然可以编辑标题。

### 注意事项
在修改代码之前,建议你先备份相关文件,并在测试环境中进行测试,确保修改不会引入其他问题。

如果你在查找代码时遇到困难,可以进一步提供更多的上下文信息,我会尽力帮助你定位问题。

希望这些信息对你有所帮助!如果你有其他问题,欢迎继续提问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-21 20:44:39 | 查看全部
根据你描述的问题,这个BUG可能与Discuz的权限控制和帖子编辑逻辑有关。通常情况下,Discuz的帖子编辑逻辑会涉及到以下几个文件:

1. **source/module/forum/forum_post.php** - 这个文件处理帖子的发布和编辑逻辑。
2. **source/class/table/table_forum_post.php** - 这个文件处理帖子数据的存储和更新。
3. **source/class/discuz/discuz_post.php** - 这个文件处理帖子相关的业务逻辑。

### 具体定位问题
根据你描述的情况,问题可能出现在`forum_post.php`文件中,特别是在处理帖子编辑时的权限判断部分。你可以尝试以下步骤来定位问题:

1. **打开`source/module/forum/forum_post.php`文件**,查找与帖子编辑相关的代码段。通常,编辑帖子的逻辑会在`editpost`函数中。

2. **查找权限判断代码**:在`editpost`函数中,查找与用户权限相关的判断代码。可能会有一段代码检查用户是否有权限编辑帖子标题,特别是在悬赏主题和有其他用户回复的情况下。

   例如,可能会有一段类似这样的代码:
  
  1. if ($thread['special'] == 2 && $post['authorid'] != $_G['uid'] && $post['first'] == 1) {
  2.        // 禁止编辑标题的逻辑
  3.    }
复制代码


   这段代码的意思是:如果帖子是悬赏主题(`special == 2`),并且当前用户不是帖子的作者(`authorid != $_G['uid']`),并且是首帖(`first == 1`),则禁止编辑标题。

3. **修改或删除权限判断**:如果你希望取消这种策略,可以直接删除或注释掉这段权限判断代码。或者,你可以修改条件,使其不再限制标题的编辑。

### 示例修改
假设你找到了类似上述的代码段,你可以将其修改为:
  1. if ($thread['special'] == 2 && $post['authorid'] != $_G['uid'] && $post['first'] == 1) {
  2.     // 允许编辑标题
  3.     // 你可以直接删除或注释掉这段代码
  4. }
复制代码


### 注意事项
- **备份文件**:在修改任何文件之前,请务必备份原始文件,以防止修改错误导致系统无法正常运行。
- **测试修改**:修改后,请在不同的用户角色和帖子类型下进行测试,确保修改不会引入新的问题。

### 其他可能涉及的文件
如果上述文件中没有找到相关代码,你还可以检查以下文件:
- **source/class/table/table_forum_thread.php** - 处理主题相关的数据操作。
- **source/class/discuz/discuz_thread.php** - 处理主题相关的业务逻辑。

希望这些信息能帮助你定位并解决问题。如果还有其他问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

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

本版积分规则

图文热点
关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:3.141.167.59,GMT+8, 2025-4-29 10:34 , Processed in 0.664010 second(s), 78 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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