Discuz!X3.4最新版完美解决帖子标题80个字符的限制
目前安大论坛使用的是Discuz!X3.4 UTF-8版本,一个汉字占用3个字符,目前标题限制了80个字符,也就只能26个汉字,太少了。
以下是安大论坛的标题字符修改为120个过程记录:
第1步,执行SQL
我用的是软件来执行SQL的,也可以在discuz的后台->站长->数据库->升级,在这里执行SQL语句:
(这个SQL语句的输入框默认是没有的,需要将 config/config_global.php 当中的 $_config[admincp][runquery] 设置修改为 1)
ALTER TABLE `pre_forum_post` CHANGE `subject` `subject` VARCHAR(120) NOT NULL; ALTER TABLE `pre_forum_rsscache` CHANGE `subject` `subject` char(120) NOT NULL; ALTER TABLE `pre_forum_thread` CHANGE `subject` `subject` char(120) NOT NULL;
第2步,修改JS文件
在/static/js/目录下 找到forum_post.js 和forum.js 这两个JS文件 。
打开forum_post.js 文件 查找字符 80 将这个文件里所有的 80 替换为 120 。
打开forum.js 这个文件 查找字符 80 将这个文件里所有的 80 替换为 120 。
第3步,修改模板文件
在/template/default/forum/ 目录下,找到post_editor_extra.htm和forumdisplay_fastpost.htm这两个模板文件。
打开post_editor_extra.htm 文件 ,查找字符 80 将这个文件里(除了第一个 80 字符)所有的 80 替换为 120 。
打开forumdisplay_fastpost.htm 文件 ,查找字符 80 将这个文件里(除了第一个和最后一个代码的 80 字符)所有的 80 替换为 120 。
第4步,修改验证函数:
打开目录:source/function/function_post.php
使用文本编辑器editplus打开计算文件function_post.php,查找定位在约372行处,做如下修改:
找到:
if(dstrlen($subject) > 80) { return 'post_subject_toolong'; }
修改为
if(dstrlen($subject) > 120) { return 'post_subject_toolong'; }
第5步,修改语言包
路径目录:source/language/lang_messege.php,大约在1007行,把80改为120。
'post_subject_toolong' => '抱歉,您的标题超过 120 个字符修改标题长度',
附加:帖子页面面包屑导航标题
到这里基本上已经ok了。另外在帖子页面的面包屑导航标题默认的也是显示不全,我们可以再修改下这里的显示字符长度。
路径目录:/source/module/forum/forum_viewthread.php,大约在104行,把52修改为120
$thread['short_subject'] = cutstr($_G['forum_thread']['subject'], 52);
改成
$thread['short_subject'] = cutstr($_G['forum_thread']['subject'], 120);