为了让主题界面更加美观,Discuz 官方对主题标题的字数作了限制,只允许输入80个字符,即GBK版40个汉字,UTF-8版本的为26个汉字,而很多时间帖子标题的字数要比这个数值长,那么我们就需要对它作出修改.
本教程主要讲述如何将Discuz X2的主题标题80字的限制去除,并且设置为自己想要的字数限制.
注意,以下的操作,所有操作中的数值应该是统一的,比如,你要将标题字数限制为30个字符,那么以下步骤中需要涉及的操作,都要设置为30.GBK版一个汉字占两个字符,UTF-8版一个汉字占三个字符.请酌情增减标题字数.
首先需要运行SQL查询,将数据库中的标题限制修改为你需要的数字,此处假设为240(即80个汉字,本站使用的是UTF-8版),如本站当前设置.
如果你的数据表前缀修改过,请将pre_forum_post中的pre改为你自己设定的值.
在PHPMYADMIN或DISCUZ 后台运行数据库查询,输入以下代码:
(UTF-8版)
- `pre_forum_post` CHANGE `subject` `subject` VARCHAR( 240 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
复制代码 或(GBK版)- `pre_forum_post` CHANGE `subject` `subject` VARCHAR( 240 ) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL;
复制代码 然后,打开static/js/forum_post.js,UTF-8版的请用Ultraedit等支持UTF-8编码的软件编辑,用记事本打开会乱码.
找到文件static/js/forum_post.js中的
- else if(mb_strlen(theform.subject.value) > 80) {
- showError('标题超过 80 个字符的限制');
- return false;
复制代码 中所有的80修改为240;
第三步,打开template\default\forum\post_editor_extra.htm和template\default\forum\forumdisplay_fastpost.htm,将所有的'checklen', 80中的80修改为240,将所有的<strong id="checklen">80</strong>中的80修改为240;
第四步,打开source/function/function_post.php,将
- if(dstrlen($subject) > 80) {
- return 'post_subject_toolong';
复制代码 修改为
- if(dstrlen($subject) > 240) {
- return 'post_subject_toolong';
复制代码
第五步,将以上所有文件按原来的文件结构上传到服务器,再次发帖,标题字数限制即为240字符. |
|