HackerOne users: Testing against this community violates our program's Terms of Service and will result in your bounty being denied.
Please upgrade here. These earlier versions are no longer being updated and have security issues.

[Simplified Chinese Locale Addon] 中文用户名解决方案

This discussion is related to the Simplified Chinese Locale(简体中文) addon.
andelfandelf New
edited February 2011 in Vanilla 2.0 - 2.8
12月27日更新

中文用户名profile访问出错

必须要保证 /profile/用户名 可以访问到用户资料。这个在 @mentions 以及个人资料页面跳转中用到。
// applications/dashboard/models/class.usermodel.php:130:
$User = $this->SQL->Where('u.Name', urldecode($Username))->Get()->FirstRow();

中文用户名支持

functions.validation.php:L123
中 ValidateUsername 函数, 正则改为:
'/^([\d\w_\x80-\xff]{3,20})?$/si'

@mentions 的中文用户名支持

functions.generl.php 中 GetMention 函数
这个函数在发帖提交后调用。
正则改为
'/(?:^|[\s,\.])@([\S]{1,20})(?=[\s,\.!?]|$)/i' , 个人觉得不需要做用户名过滤。

同时需要识别 @中文 的 Format.
library/core/class.format.php 文件中 Menions() 函数
第一个正则改为 '/(^|[\s,\.])@([\S]{1,20})(?=[\s,\.!?]|$)/i',

同时该函数里还用来处理 #topic 中文下该功能bug很多。目前使用 #话题# 的解决方法,
第二个改为 '/(^|[\s,\.])\#([\S]{1,30}?)#/i' 只能保证正常跳转,搜索依然不可用。等待下次更新。
Tagged:
«1

Comments

Sign In or Register to comment.