Discuz!发帖提示80个字符限制的解决办法

错误提示:
您的标题超过 80 个字符的限制。

需要修改的文件如下:

include/post.func.php
include/javascript/post_editor.js
modcp/editpost.inc.php
templates/default/viewthread.htm
templates/default/forumdisplay.htm
templates/default/templates.lang.php
templates/default/messages.lang.php

1、打开 include/post.func.php

function checkpost() {
global $subject, $message, $disablepostctrl, $minpostsize, $maxpostsize;
if(strlen($subject) > 80) {
return 'post_subject_toolong';
}
把 > 80 改成 你想要的数字

2、打开 include/javascript/post_editor.js

} else if(mb_strlen(theform.subject.value) > 80) {
alert(lang['post_subject_toolong']);
theform.subject.focus();
把 > 80 改成 你想要的数字

3、打开 modcp/editpost.inc.php

require_once DISCUZ_ROOT.'./include/discuzcode.func.php';
$subjectnew = dhtmlspecialchars(censor(trim($subjectnew)));
if(strlen($subjectnew) > 80) {
showmessage('post_subject_toolong');
把 > 80 改成 你想要的数字

4、打开 default/viewthread.htm

} else if(mb_strlen(theform.subject.value) > 80) {
alert("{lang post_subject_toolong}");
theform.subject.focus();
return false;
把 > 80 改成 你想要的数字

5、打开 default/forumdisplay.htm

} else if(mb_strlen(theform.subject.value) > 80) {
alert("{lang post_subject_toolong}");
theform.subject.focus();
return false;
把 > 80 改成 你想要的数字

6、打开 templates/default/templates.lang.php

'post_subject_toolong' => '您的标题超过 150 个字符的限制。',

改成:

'post_subject_toolong' => '您的标题超过 XX 个字符的限制。',

7、打开 templates/default/messages.lang.php

'post_subject_toolong' => '对不起,您的标题超过 80 个字符,请返回修改标题长度。',

改成

'post_subject_toolong' => '对不起,您的标题超过 XX 个字符,请返回修改标题长度。',

把修改好的文件上传覆盖,然后在论坛后台更新一下“所有缓存”。

补充:
若是论坛是utf-8 (繁中)的话,则打满40中文字,可能不止80字元.
因为每个utf-8码中文字,约有1~4个字元.

varchar(80)是指80 byte
若是输入英文字,则没有问题
若输入中文会有问题,主要是big5码中文,一个字为2字元

以下为加大相关'长度'值为120的参考语法:
Alter TABLE `cdb_posts` CHANGE `subject` `subject` VARCHAR(120) NOT NULL;