一个很烦人的问题,discuz!x2.5的帖子标题长度(字数)有限制,无忧主机(www.51php.com)小编从康盛官方论坛查了相关资料,是有80个字符的限制。换句话说,你在编辑帖子标题的时候,只能有80个字符,超过了就不显示了。这是一个蛋疼的问题,80个字符长度的帖子标题,怎么能满足论坛达人的需求类?如果你用的是discuz!x2.5 UTF8版本,那就更揪心了,因为utf8版本,一个汉字算3个字节,也就是26个汉字。是不是有点崩溃的感觉?还好,这种问题,不是一个人遇到,在discuz!x2.5官方论坛上,也有许多人问如何取消或加长默认标题长度。很高兴,这个问题已经有完美的解决方案,无忧主机(www.51php.com)小编这里就借花献佛,与大家共享这个案例。

目的:将discuz!x2.5论坛标题长度限制80字符,增加到限制120字符。

无忧主机(www.51php.com)小编温馨提示:论坛代码修改有风险,网站备份要先行。网站整站备份,请你参考:网站整站一键备份与恢复

工具:要顺利完成代码的修改,一个好用工具不可少,强烈推荐使用文本编辑器(editplus),不推荐使用记事本进行编辑修改。

方向:我们要把discuz!x2.5论坛标题字数(长度)限制80字符,增加到限制120字符,修改过程中,要涉及:mysql数据库、js验证文件数、修改函数验证、模版中定义的字符限制数量、语言包文件合计五个文件。同志们,工作量巨大繁琐,要仔细认真哦。我们操作前对网站进行一个整站备份是非常有必要的。

把discuz!x2.5论坛标题长度限制80字符,增加到限制120字符的详细操作步骤和说明:

1、Mysql数据库修改。

这里我们直接执行sql查询语句来完成,请你直接把下面的sql语句直接复制,到phpmyadmin工具中的sql语句执行窗口,执行即可。

如果你不知道如何登录无忧php虚拟主机的phpmyadmin工具,请你直接点击 “phpmyadmin数据库管理工具的使用说明”查询。

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文件:

我们要这里要修2个JS文件一个是forum_post.js和forum.js。详细修改如下:

A、修改js验证字符数文件:static/js/forum_post.js

使用文本编辑器editplus打开计算文件forum_post,查找定位在约77行处,做如下修改:

源文件:

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) > 120) {
                showError('您的标题超过 120 个字符的限制');
                return false;
        }

B、修改目录:sitatic/js/forum.js

使用文本编辑器editplus打开计算文件forum.js,查找定位在约212行处,做如下修改:

源代码:

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) > 120) {
                s = '您的标题超过 120 个字符的限制';
                theform.subject.focus();
        }

3、修改模版中定义的字符限制数量:

在discuz!x2.5模版中,有一句代码限制了帖子标题字符数,这是我们必须要修改的,让其支持更长的帖子标题。修改文件为:post_editor_extra.htm和forumdisplay_fastpost.htm

A、post_editor_extra.htm路径目录:/template/default/forum/

使用文本编辑器editplus打开计算文件post_editor_extra.htm,查找定位在约28行处,做如下修改:

源代码如下:

<span id="subjectchk"{if $_G[gp_action] == 'reply'} style="display:none"{/if}>
{lang comment_message1}
<strong id="checklen">80</strong> {lang comment_message2}</span>

修改替换为:

<span id="subjectchk"{if $_G[gp_action] == 'reply'} style="display:none"{/if}>
{lang comment_message1}
<strong id="checklen">120</strong> {lang comment_message2}</span>

B、forumdisplay_fastpost.htm路径目录:\template\default\forum\forumdisplay_fastpost.htm

使用文本编辑器editplus打开计算文件forumdisplay_fastpost.htm,查找定位在约32行处,做如下修改:

源代码:

<span>{lang comment_message1} <strong id="checklen">80</strong> {lang comment_message2}</span>

修改替换为:

<span>{lang comment_message1} <strong id="checklen">120</strong> {lang comment_message2}</span>

4、修改函数验证

修改一个验证函数(function_post.php)文件,这个非常重要,这里也对帖子标题长度做了限制,我们只需要修改限制长度即可。

function_post.php路径目录:source/function/function_post.php

使用文本编辑器editplus打开计算文件post_editor_extra.htm,查找定位在约345行处,做如下修改:

源代码:

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

修改为:

if(dstrlen($subject) > 120) {
return ‘post_subject_toolong’;
}

5、修改语言包

当会员编辑帖子标题的时候,如果超过定义的长度,那么系统就会友好的提示您,帖子标题长度太长了,这个地方虽然不是必须的,通过前面4个地方的修改,我们已经可以达到了我们的目的了,但是为了用户体验,我们必须要继续修改Discuz!x2.5的语言包,请语言包(lang_messege.php)中关于超过标题长度的系统提示修改正确。

lang_messege.php路径目录:source/language/lang_messege.php

使用文本编辑器editplus打开计算文件lang_messege.php,查找定位在约988行处,做如下修改:

‘post_subject_toolong’ => ‘抱歉,您的标题超过 120 个字符修改标题长度’,

以上操作无忧主机(www.51php.com)小编已经在discuz!x2.5 gbk 最新版本中验证通过,希望上面的操作过程,能够给你带来帮助。感谢你阅读本教程。

 

纯Linux环境下高端免备案【香港独立IP地址】 php空间,仅仅只需199元一年起。商务中国域名核心代理直销50元注册国际顶级域名

本文地址:http://www.51php.com/discuz/7470.html

喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^

阅读本文的人还阅读: