一、环境
Discuz 3.4
二、更改方法
本文将帖子标题的字符长度限制为最长180个字符。
执行sql语句前,最好先备份下数据库:
# mysqldump -u root -p Discuz > Discuz.sql
(Discuz表示Discuz所使用的数据库名,Discuz.sql是备份出来的文件)
登陆mysql:
# mysql -u root -p
(如果mysql的root账号没有设置密码,在提示输入密码的时候,直接回车即可。)
切换到Discuz所使用的数据库:
MariaDB [(none)]> use Discuz;
执行以下3条sql语句,修改为180个字符的限制:
MariaDB [Discuz]> ALTER TABLE `pre_forum_post` CHANGE `subject` `subject` VARCHAR(180) NOT NULL; MariaDB [Discuz]> ALTER TABLE `pre_forum_rsscache` CHANGE `subject` `subject` char(180) NOT NULL; MariaDB [Discuz]> ALTER TABLE `pre_forum_thread` CHANGE `subject` `subject` char(180) NOT NULL;
注意:MariaDB [Discuz]> 是提示符,输入sql语句的时候不要将其输入。
修改JS验证字符数,先备份文件:
# cp 网站目录/static/js/forum_post.js 网站目录/static/js/forum_post.js_bak
更改forum_post.js文件内容
# vi 网站目录/static/js/forum_post.js
查找到以下字符
else if(mb_strlen(theform.subject.value) > 180) { showError('您的标题超过 180 个字符的限制'); return false;
把80改成180(标红色的字符)。保存文件,退出。
修改JS验证字符数,备份文件:
# cp 网站目录/static/js/forum.js 网站目录/static/js/forum.js_bak
编辑forum.js文件:
# vi 网站目录/static/js/forum.js
查找到如下内容:
theform.message.focus(); } else if(mb_strlen(theform.subject.value) > 180) { s = '您的标题超过 180 个字符的限制'; theform.subject.focus();
把80改成180(标红色的字符)。保存文件,退出。
修改模板中字符限制数,先备份文件:
# cp 网站目录/template/default/forum/post_editor_extra.htm 网站目录/template/default/forum/post_editor_extra.htm_bak
编辑post_editor_extra.htm文件:
<# vi 网站目录/template/default/forum/post_editor_extra.htm
替换所有的80为180,保存文件,退出。
修改模板中字符限制数,备份文件:
# cp 网站目录/template/default/forum/forumdisplay_fastpost.htm 网站目录/template/default/forum/forumdisplay_fastpost.htm_bak
编辑forumdisplay_fastpost.htm文件:
# vi 网站目录/template/default/forum/forumdisplay_fastpost.htm
替换所有的80为180,保存文件,退出。
修改函数验证提示,备份文件:
# cp 网站目录/source/function/function_post.php 网站目录/source/function/function_post.php_bak
编辑function_post.php文件:
# vi 网站目录/source/function/function_post.php
查找到以下字符:
if(dstrlen($subject) > 180) { return 'post_subject_toolong';
把80改成180(标红色的字符)。保存文件,退出。
找到语言包提示文字,备份文件:
# cp 网站目录/source/language/lang_message.php 网站目录/source/language/lang_message.php_bak
编辑lang_message.php文件:
# vi 网站目录/source/language/lang_message.php
查找到如下内容:
'post_subject_toolong' => '抱歉,您的标题超过 180 个字符修改标题长度', 把80改成180(标红色的字符)。保存文件,退出。
打开Discuz主页,以管理员(admin)身份登陆。点击页面右上方的 管理中心:
输入管理员的账号密码,进入管理中心,点击 工具-更新缓存-确定。如下图所示:
然后重启浏览器,即可生效。