Discuz论坛 X3.4更改帖子标题限制80个字数字符长度限制

发布于 2022-04-30 更新于 2022-05-06 当前分类:» 学习笔记 阅读数:87

一、环境

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)身份登陆。点击页面右上方的 管理中心:

20200131122637267

输入管理员的账号密码,进入管理中心,点击 工具-更新缓存-确定。如下图所示:

在这里插入图片描述

然后重启浏览器,即可生效。

发布评论