查看: 90|回复: 0

[Discuz教程] Discuz! X3.4论坛标题字数突破80的限制解决方法-王超博客

[复制链接]

1569

主题

6

回帖

1万

积分

管理员

Rank: 9

积分
13770
发表于 2023-10-31 22:40:37 | 显示全部楼层 |阅读模式
  解决方法:

  一、数据库修改;

  二、修改JS验证字符数文件;

  三、修改模板中写死的字符限制数;

  四,修改函数验证文件;

  五,修改语言包文件。

  一、数据库修改,修改数据库标题字段的长度为200字符:运行下面的sql语句:

  (注意修改你的表的前缀)

现在的这个版本 默认没有手动输入SQL 语句地方,需要先开启如果您想自己随意书写 SQL 升级语句,需要将 config/config_global.php 当中的 $_config[admincp][runquery] 设置修改为 1。

1.png

填入下面代码
LTER TABLE `pre_forum_post` CHANGE `subject` `subject` VARCHAR(180) NOT NULL;
ALTER TABLE `pre_forum_rsscache` CHANGE `subject` `subject` char(180) NOT NULL;
ALTER TABLE `pre_forum_thread` CHANGE `subject` `subject` char(180) NOT NULL;

2.jpg

  二、修改JS验证字符数:

1、找到文件static/js/forum_post.js的75-81行

if(($('postsubmit').name != 'replysubmit' && !($('postsubmit').name == 'editsubmit' && !isfirstpost) && theform.subject.value == "") || !sortid && !special && trim(message) == "") {                showError('抱歉,您尚未输入标题或内容');                return false;        } else if(mb_strlen(theform.subject.value) > 80) {                showError('您的标题超过 80 个字符的限制');                return false;        }
修改为
if(($('postsubmit').name != 'replysubmit' && !($('postsubmit').name == 'editsubmit' && !isfirstpost) && theform.subject.value == "") || !sortid && !special && trim(message) == "") {                showError('抱歉,您尚未输入标题或内容');                return false;        } else if(mb_strlen(theform.subject.value) > 200) {                showError('您的标题超过 200 个字符的限制');                returnfalse;        }


2、找到文件sitatic/js/forum.js的212到218行代码

  
1234567if(theform.message.value == '' theform.subject.value == '') {                s = '抱歉,您尚未输入标题或内容';                theform.message.focus();        } else if(mb_strlen(theform.subject.value) > 80) {                s = '您的标题超过 80 个字符的限制';                theform.subject.focus();        }

  修改为:

  
1234567if(theform.message.value == '' theform.subject.value == '') {                s = '抱歉,您尚未输入标题或内容';                theform.message.focus();        } else if(mb_strlen(theform.subject.value) > 80) {                s = '您的标题超过 80 个字符的限制';                theform.subject.focus();        }

  三、修改模板中写死的字符限制数:

  1、找到文件\template\default\forum\post_editor_extra.htm的25到33行:

  
123456789                                                                                        RE: $thread[subject] [{lang modify}]                                                                                {lang comment_message1} 80[/B] {lang comment_message2}                                       

  修改为:

  
123456789                                                                                        RE: $thread[subject] [{lang modify}]                                                                                {lang comment_message1} 200[/B] {lang comment_message2}                                        

  2、找到文件\template\default\forum\forumdisplay_fastpost.html的31-32行:

  
12                                {lang comment_message1} 80[/B] {lang comment_message2}

  修改为:

  
12                               {lang comment_message1} 200[/B] {lang comment_message2}

  四,修改函数验证提示:

  找到文件source/function/function_post.php的361-363行:

  
123if(dstrlen($subject) > 80) {                return 'post_subject_toolong';        }

  修改为:

  
123if(dstrlen($subject) > 200) {return 'post_subject_toolong';}

  五、找到语言包提示文字,打开 source/language/lang_messege.php 并找到998行改为:

  
1'post_subject_toolong' => '抱歉,您的标题超过 80 个字符修改标题长度',

  修改为:

  
1'post_subject_toolong' => '抱歉,您的标题超过 200 个字符修改标题长度',

  按照以上步骤全部修改完,后台——工具——更新一下缓存,问题解决。

  未经允许不得转载:王超博客 » Discuz! X3.4论坛标题字数突破80的限制解决方法
混沌资源社区- 论坛版权- 免责声明
1、本主题所有言论和图片纯属会员个人意见,与本站立场无关
2、本站的所有内容都不保证其准确性,有效性,完整性,时间性,凡因本站内容引起误导等因素而造成的损失本站不承担连带责任。
3、本站所有主题由该帖子作者发表,该帖子作者与本站享有帖子相关版权
4、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和本站的同意
5、本站发布的所有资源(包括动漫作品.文字.图片.FLASH.动画及各种软件工具)只为本地单机测试用途,请勿用于商业途径或非法使用,否则后果自负!请下载后24小时内删除!
6、本站管理员和版主有权不事先通知发贴者而删除本文
7、如您认为本文内容侵犯了您的权益,请与我们联系!我们将及时予与删除并致以最深的歉意!同时本站保留全部修改、解释、更新本声明的权利
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表