找回密码
 注册

Discuz X2 修改主题标题字数限制为任意数值

php 发表于 2011/12/2 02:06 | 显示全部楼层 |阅读模式
为了让主题界面更加美观,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版)
  1. `pre_forum_post` CHANGE `subject` `subject` VARCHAR( 240 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
复制代码
或(GBK版)
  1. `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中的

  1. else if(mb_strlen(theform.subject.value) > 80) {
  2.                 showError('标题超过 80 个字符的限制');
  3.                 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,将
  1. if(dstrlen($subject) > 80) {
  2. return 'post_subject_toolong';
复制代码
修改为
  1. if(dstrlen($subject) > 240) {
  2. return 'post_subject_toolong';
复制代码

第五步,将以上所有文件按原来的文件结构上传到服务器,再次发帖,标题字数限制即为240字符.

手机版|轻松E站

轻松E站

快速回复 返回顶部 返回列表