热搜词
发表于 2012-5-3 14:31:36 | 显示全部楼层 |阅读模式
数据转码后就是头像、附件等处理,这个都比较简单,不用多说了。不过不管用哪种备份、转码、恢复的数据的方法,成功恢复后都会出现几个问题,分别如下:

第一个是积分出现问题,你之前的金钱、威望、贡献等等的都看不到了,解决方法是到后台重新设置一下就可以了。

第二个是你会发现主题分类也没有了,解决方法也是一样,到后台重新设置一下就可以了。

第三个问题是家园的动态显示全部不完整了(如下图),这个不知道如何让解决,但是问题不大,因为从现在之后的家园动态是会正常显示的。

此就全部完成了转码工作。用户名长度和帖子标题长度的修改见2楼。

默认用户名长度为15个字符(UTF8编码下只有5个汉字)的修改方法。

第一是要修改数据库表里的所有与用户名相关的字段,把15修改为你想要的数字,我是改为21的,一般建议不超过21(7个汉字)。这个可以在安装前修改\upload\install\data\install.sql文件,在文件里找到所有与用户名相关的字段,把15修改为21,文件中字段值为15的,出了IP和域之外,其他的都是和用户名相关的。安装后可以在后台升级数据表或者登陆phpmyadmin来修改相关的字段值,由于涉及的地方太多,登陆phpmyadmin来修改可能更好一点。

第二是修改程序,一共有7处需要修改。
1:在\source\language\lang_message.php文件中找到

  • 'register_profile_username_toolong' => '用户名超过 15 个字符'

复制代码
将15改为21

3:在 \source\module\member\member_register.php文件中找到

  • $usernamelen > 15

复制代码
将15 这个15改为21(注意是profile_username_toolong是代表最长的)

4:在source\module\forum\forum_ajax.php文件中找到

  • if($usernamelen < 3) {
  • showmessage('profile_username_tooshort');
  • } elseif($usernamelen > 15)

复制代码
把15改为21

5:在uc_client\modele\user.php文件中找到

  • if($len > 15 || $len < 3 || preg_match("/\s+|^c:\\con\\con|[%,\*\"\s\<\>\&]|$guestexp/is", $username))

复制代码
将15改为21(最大字符)

6:在网站 u_server\model\user.php 文件中找到

  • if($len > 15 || $len < 3

复制代码
将15改为21

7:在template\default\member\register.htm 文件中找到

  • if(unlen < 3 || unlen > 15)

复制代码
将15改为21(最大字符)

虽然有点麻烦,但是现在你会发现你的UTF8版本和他们的GBK一样,也可以注册7个汉字的用户名了。

全部评论1
灰儿 发表于 2012-5-3 14:36:02 | 显示全部楼层
默认帖子标题长度为80个字符(UTF8编码下26个汉字)的修改方法

我发觉一个问题,就是修改这个字符限制时只修改程序代码而不修改数据库表里的相关字段竟然也可以成功,不过我还是把相关字段做了修改,修改方法和2楼介绍的修改用户名相关字段的方法一样,这里就不多说了。主要说一下程序代码的修改,一共涉及5个文件9处需要修改。

1:打开source/function/function_post.php找到
  • if(strlen($subject) > 80)

复制代码
将80改为120

2:打开source/language/lang_message.php找到
  • 'post_subject_toolong' => '对不起,你的标题超过 80 个字符'

复制代码
将80改为120

3:打开static/js/forum_post.js找到
  • else if(mb_strlen(theform.subject.value) > 80)

复制代码
将80改为120,再找到
  • showDialog('您的标题超过 80 个字符的限制');

复制代码
将80修改为120

4:打开templates/default/forum/post.htm找到
  • strLenCalc(this, 'checklen', 80);

复制代码
将80改为120,再找到
  • onkeyup="strLenCalc(this, 'checklen', 80);"

复制代码
将80改为120,再找到
  • <strong id="checklen">80</strong>

复制代码
将80改为120

5:打开templates/default/forum/forumdisplay_fastpost.htm找到
  • onkeyup="strLenCalc(this, 'checklen', 80);"

复制代码
将80改为120,再找到
  • <strong id="checklen">80</strong>

复制代码
将80改为120

至此程序修改全部完成,更新下缓存,你会发现的的UTF8版本在发帖时一样可以发40个汉字的标题了,怎么样?不输于GBK吧。
回复

使用道具 举报

回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-12-23 05:55 , Processed in 0.142506 second(s), 22 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team