本帖最后由 otherbank 于 2012-2-3 17:15 编辑
discuz! X2的群组的名称默认只能填10个汉字,超出部分就自动截掉,有很多站点却需要更多的字符显示群组名;字数限制,好处是美观,但限制了显示的不完整,有时候还是需要修改一下,如果考虑美观的话,前台调用的话,不显示多余的即可。
系统运行的原理是填写群组名称,聚焦离开文本框触动ajax事件给你检测是否超出20个字符,超出就会提示你多的会被截取掉,提交后程序有截取函数截取多余的字符,要实现修改群组字数的限制,需要修改三个文件:ajax文件,程序文件和语言包的提示文字(现以20个字节修改为30个字节为例)
1,找到论坛根目录下的文件/source/module/forum/forum_ajax.php,修改ajax检验长度代码
源文件140行代码- $tmpname = cutstr($groupname, 20, '');
复制代码 修改为- $tmpname = cutstr($groupname, 30, '');
复制代码 2,找到论坛根目录下的文件/source/module/forum/forum_group.php,修改提交截取代码代码
源文件280行代码- $name = censor(addslashes(dhtmlspecialchars(cutstr(stripslashes(trim($_G['gp_name'])), 20, ''))));
复制代码 修改为- $name = censor(addslashes(dhtmlspecialchars(cutstr(stripslashes(trim($_G['gp_name'])), 30, ''))));
复制代码 源文件368行代码- $_G['gp_name'] = censor(addslashes(dhtmlspecialchars(cutstr(stripslashes(trim($_G['gp_name'])), 20, ''))));
复制代码 修改为- $_G['gp_name'] = censor(addslashes(dhtmlspecialchars(cutstr(stripslashes(trim($_G['gp_name'])), 30, ''))));
复制代码 3,找到论坛根目录下的文件/source/language/lang_message.php ,检验名称长度提示信息
源文件232行代码- 'group_name_oversize' => '抱歉,{_G/setting/navs/3/navname}名称超过20个字节将被截断',
复制代码 修改为- 'group_name_oversize' => '抱歉,{_G/setting/navs/3/navname}名称超过30个字节将被截断',
复制代码 完成这三步就完成了修改群组名称的限制。由于数据库字段还有字数限制,其实数据库允许输入的最大字符数是80,也就是说上面修改群组名称超过80之后也是不显示的。
|