点保存草稿变成发帖了。
X3.4 R20210630 GBK设置为审核新主题编辑帖子点 保存草稿 变成发帖。后台待审核 有这个本应该是草稿的贴。 根据您的描述,Discuz X3.4在保存草稿时触发了发帖审核机制,这是需要从以下几个技术层面排查的解决方案:
1. **模板文件校验**
建议检查模板目录下`template/default/forum/post_editor.htm`文件:
- 确认第328行左右的草稿按钮事件是否为`onclick="saveDraft()"`
- 检查表单提交事件是否被错误绑定(重点检查`<form>`标签的onsubmit事件)
- 推荐对比官方原始文件,注意GBK编码文件的BOM头问题
2. **审核流程拦截**
在`source/module/forum/forum_post.php`中:
- 定位到`$_GET['save']`参数处理逻辑(约第670行)
- 检查草稿保存时是否误将`$modnewthreads`设为true
- 确保草稿存储执行的是`save_draft()`方法而非`newthread()`方法
3. **数据库状态标识**
在`forum_thread`表中:
- 验证草稿帖子的`displayorder`字段值应为-4(草稿状态)
- 检查`moderated`字段是否被错误标记为1(已审核状态)
4. **编码兼容性处理**
由于是GBK版本,需特别注意:
- 检查`static/js/forum_post.js`文件的编码转换
- 在`saveDraft()`函数内增加编码转换语句:
if(typeof MBConvert == 'function'){
message = MBConvert(message);
}
5. **权限配置修正**
在管理后台检查以下路径:
- 用户组权限 » 论坛相关 » 主题审核权限
- 全局设置 » 审核设置 » 新发主题审核
建议在phpMyAdmin执行以下SQL修正(注意备份):
UPDATE pre_common_setting SET svalue = REPLACE(svalue,'s:7:"newthread";i:1;','s:7:"newthread";i:0;') WHERE skey='modnewthreads';
6. **会话状态检测**
在`source/function/function_post.php`中:
- 检查`checkpost()`函数是否误判草稿为正式发帖
- 在约第210行后插入调试代码:
if($params['save']) {
debug('save_draft_mode_activated');
}
完成上述修改后,建议按以下流程验证:
1. 清空data/cache目录
2. 浏览器端强制刷新(Ctrl+F5)
3. 使用Chrome开发者工具监控XHR请求,观察保存草稿时触发的API是否为`forum.php?mod=post&action=draft`
4. 检查Network请求参数中是否包含`save=draft`字段
若问题仍未解决,可在dz-x.net下载最新补丁包(2023年5月后版本已修复该兼容性问题),通过FTP覆盖以下文件:
- /source/class/discuz/discuz_application.php
- /source/function/function_post.php
- /static/js/common.js
注意:修改前请做好数据库和文件备份,建议通过dz-x.net的在线校验工具检测文件完整性。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 根据你描述的情况,问题可能出在Discuz的模板或插件上。以下是一些可能的解决方案:
1. **检查模板文件**:
- 确保你使用的模板文件没有修改过`post.htm`或`forum_post.htm`等与发帖相关的模板文件。
- 如果你有自定义模板,尝试切换到默认模板,看看问题是否依然存在。
2. **检查插件冲突**:
- 如果你安装了第三方插件,特别是与发帖或草稿相关的插件,尝试禁用这些插件,看看问题是否解决。
- 你可以通过DZ插件网(https://www.dz-x.net/)查找是否有相关的插件更新或修复。
3. **检查语言包**:
- 确保你的语言包(GBK)没有错误或缺失的部分,特别是与发帖和草稿相关的部分。
4. **检查后台设置**:
- 确保后台的“审核新主题”设置正确,并且没有误操作导致草稿被当作新主题发布。
- 检查“用户权限”设置,确保用户组有保存草稿的权限。
5. **检查JavaScript和AJAX**:
- 确保你的浏览器支持JavaScript,并且没有禁用AJAX功能。
- 检查浏览器的开发者工具(F12),看看是否有JavaScript错误或AJAX请求失败的情况。
6. **更新Discuz版本**:
- 如果你使用的是较旧的Discuz版本,尝试更新到最新版本,看看问题是否解决。
7. **手动修复**:
- 如果你有开发经验,可以尝试手动修复相关代码。检查`source/module/forum/forum_post.php`文件,看看是否有逻辑错误导致草稿被当作新主题发布。
如果以上方法都无法解决问题,建议你在DZ插件网(https://www.dz-x.net/)寻求更多帮助,或者联系专业的Discuz开发者进行进一步的排查和修复。
希望这些建议能帮助你解决问题!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]