关于discuz论坛标题限制80个字符的修改,我已经修改很多次了,但是每次都是去乱找,看网上的,因为这个修改的文件比较多,这一次为了不以后还麻烦,干脆自己也记录一下吧。
1:修改数据库,需要执行sql语句
数据表前缀要和你的一致,有的人在安装论坛的时候,会修改这个。

ALTER TABLE `pre_forum_post` CHANGE `subject` `subject` VARCHAR(200) NOT NULL;
ALTER TABLE `pre_forum_rsscache` CHANGE `subject` `subject` char(200) NOT NULL;
ALTER TABLE `pre_forum_thread` CHANGE `subject` `subject` char(200) NOT NULL;

2:修改js验证文件,找到static/js/forum_post.js文件,在里面找下下面这一段,

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 个字符的限制');
return false;
}

3:还是修改js文件,找到sitatic/js/forum.js文件,里面也有差不多的一段

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

修改为

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

4:修改模版文件,找到template\default\forum\post_editor_extra.htm文件,
除了第一个80,其他全部换成200.
5:还是修改程序文件,找到template\default\forum\forumdisplay_fastpost.htm这里面也要修改

除了第一个和最后一个80,其他全部换成200.

6:修改验证函数文件,找到source/function/function_post.php文件

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

修改为

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



7:语言包也还是修改下,在source/language/lang_messege.php里面

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

修改为

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

8:最后更新下缓存就行,后面几个文件都是把数字80缓存200,你直接换也行,批量换代码也行。