Vanilla搭建的论坛,中文用户名的注册如何实现? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zwm
V2EX    问与答

Vanilla搭建的论坛,中文用户名的注册如何实现?

  •  
  •   zwm 2012-03-14 22:47:09 +08:00 7051 次点击
    这是一个创建于 4961 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Vanilla搭建的论坛,默认是不支持中文用户名的注册的,网上搜索到的方法都无效,发现有的论坛是可以的,不知道是如何实现的,知道的朋友请指点一下,非常感谢!
    示例:
    http://www.oneplace.cn/

    http://xinyongka.biz/
    38 条回复    1970-01-01 08:00:00 +08:00
    Ellison
        1
    Ellison  
       2012-03-14 22:49:48 +08:00
    Vanilla都已经有仿V2EX的风格了么...
    zwm
        2
    zwm  
    OP
       2012-03-14 22:52:59 +08:00
    或者没有有类似的轻型论坛程序,支持中文用户名?
    daqing
        3
    daqing  
       2012-03-14 23:04:17 +08:00
    以前弄过一点Vanilla,不支持中文名注册,是因为昵称验证的正则表达式,只支持英文(现在不知道怎样)

    改改那个正则,就可以支持中文了。
    daqing
        4
    daqing  
       2012-03-14 23:06:00 +08:00
    @zwm 看看Rabel,支持中文名注册的简洁论坛软件: http://rabelapp.com
    Eyon
        5
    Eyon  
       2012-03-14 23:08:55 +08:00
    哇,第一眼看上去好漂亮.....不过URL中的中文好蛋疼.....

    话说 @daqing 那个项目是打算一直做嘛?
    daqing
        6
    daqing  
       2012-03-14 23:13:04 +08:00
    @Eyon 是的,打算长期做。目前的UI有争议,这个慢慢会改掉。
    zwm
        7
    zwm  
    OP
       2012-03-14 23:18:45 +08:00
    @daqing 谢谢,试过了,无效。
    zwm
        8
    zwm  
    OP
       2012-03-14 23:22:21 +08:00
    请教过Vanilla中文汉化包的作者andelf,TA回复是:

    简单给你说下怎么实现:
    bootstrap.php 中你应该能看到:
    if (file_exists(PATH_ROOT.'/conf/bootstrap.before.php'))
    require_once(PATH_ROOT.'/conf/bootstrap.before.php');
    ..........
    if (file_exists(PATH_ROOT.'/conf/bootstrap.after.php'))
    require_once(PATH_ROOT.'/conf/bootstrap.after.php');

    从代码上看, 这个是一个用来实现自定义功能的地方. 虽然官方文档没有说.
    所以在conf目录下:
    bootstrap.after.php
    <?php
    class Chn_MentionsFormatter {
    public static function GetMentions($String) {
    // This one grabs mentions that start at the beginning of $String
    preg_match_all(
    '/(?:^|[\s,\.>\x{4e00}-\x{ffff}])@([\d\w\x{4e00}-\x{9faf}]{3,20})\b/ui',
    $String,
    $Matches
    );
    $file_pointer = fopen("./log","w");
    fwrite($file_pointer, serialize($Matches[1]));
    fwrite($file_pointer, serialize($String));
    fclose($file_pointer);
    if (count($Matches) > 1) {
    $Result = array_unique($Matches[1]);
    return $Result;
    }
    return array();
    }
    public static function FormatMentions($Mixed) {
    // return "..................................";
    $Mixed = preg_replace(
    '/(^|[\s,\.>\x{4e00}-\x{ffff}])@([\w\d\x{4e00}-\x{9fa5}]{3,20})\b/ui',
    '\1'.Anchor('@\2', '/profile/\\2'),
    $Mixed
    );
    return $Mixed;
    }
    }

    Gdn::FactoryInstall('MentionsFormatter', 'Chn_MentionsFormatter', NULL, Gdn::FactoryInstance);


    文件可能需要确认权限.我的文艺先锋就是用这个方法搞定的.
    zwm
        9
    zwm  
    OP
       2012-03-14 23:25:53 +08:00
    但我照此试了一下,还是无效,再问就没下文了。我是技术小白,怀疑是不是与版本有关,我用的是最新的2-0-18-2版,而andelf用的是旧版。
    daqing
        10
    daqing  
       2012-03-14 23:29:41 +08:00
    @zwm 他告诉你的这个文件,是处理mention的,跟注册的关系不大。我也只是搞过老代码,新代码没看过。
    zwm
        11
    zwm  
    OP
       2012-03-15 00:03:21 +08:00
    @daqing 谢谢。
    zwm
        12
    zwm  
    OP
       2012-03-15 00:39:47 +08:00
    睡觉,明天接着研究。
    zwm
        13
    zwm  
    OP
       2012-03-15 11:25:43 +08:00
    今天有没有
    huihen
        14
    huihen  
       2012-03-15 14:04:40 +08:00
    @zwm 你不如去官方论坛问问?
    zwm
        15
    zwm  
    OP
       2012-03-15 15:34:32 +08:00
    @huihen 谢了。就是先再那儿问的,没人理。所以就在网上搜、问汉化包作者、找实现了这个功能的站长问……最后到了这儿试试
    momou
        16
    momou  
       2012-03-15 16:06:47 +08:00
    我之前搞过,是可以支持的,改下正则式就可以的。。。
    zwm
        17
    zwm  
    OP
       2012-03-15 16:18:44 +08:00
    @momou 可以详细说一下吗?
    momou
        18
    momou  
       2012-03-15 16:23:56 +08:00
    @zwm 看看这里 http://www.latooni.cn/504 ,大概差不多。。。
    zwm
        19
    zwm  
    OP
       2012-03-15 16:42:50 +08:00
    @momou 谢谢,这个方法我试过,没弄成。
    chuck911
        20
    chuck911  
       2012-03-15 17:00:19 +08:00
    @zwm oneplace.cn是我的。。。已经长草了。。。
    我这周内把这个主题整理出来放到github上
    chuck911
        21
    chuck911  
       2012-03-15 17:02:52 +08:00
    @Eyon 蛋疼什么呀,我觉得又好看又好用,SEO也很棒噢
    zwm
        22
    zwm  
    OP
       2012-03-15 17:10:30 +08:00
    @chuck911 谢谢,吼吼。
    momou
        23
    momou  
       2012-03-15 17:12:17 +08:00
    @zwm 我当时就看@chuck911用Vanilla整的oneplace.cn,也仿了一个,那个帖子的方法应该没错的。。。
    zwm
        24
    zwm  
    OP
       2012-03-15 17:14:45 +08:00
    @momou 好的,我再试试,也许是我操作有误。
    momou
        25
    momou  
       2012-03-15 17:16:40 +08:00
    @zwm 我想起来了,貌似是那个正则式有点小问题,必须三个中文字以上才行。。。
    zwm
        27
    zwm  
    OP
       2012-03-15 20:15:53 +08:00
    @huihen 谢谢。不过这个肯定是看过了,这个方法不行,我早就联系过汉化包的作者了,TA给出的最新方案我在8楼帖出来了,没有效果。
    Droog
        28
    Droog  
       2012-03-16 19:48:21 +08:00
    @zwm 请教一个问题:
    tag和catalog,是怎么实现的。
    简单的说,能不能不让会员自定义tag,而只能管理员定义?
    你的主题,很漂亮,希望能分享。
    zwm
        29
    zwm  
    OP
       2012-03-17 12:49:16 +08:00
    @Droog 朋友你弄错了, http://www.oneplace.cn/ 是20楼的chuck911 做的,得问TA。
    Droog
        30
    Droog  
       2012-03-17 16:10:27 +08:00
    @chuck911 非常期待你的主题!
    chuck911
        31
    chuck911  
       2012-03-18 17:44:02 +08:00
    刚才又研究了一会儿源码,发现了最方便的解决方法:
    在config.php里面,加上这两行
    $Configuration['Garden']['User']['ValidationRegex'] = '\d\w_\x{0800}-\x{9fa5}';//支持汉字和日文
    $Configuration['Garden']['User']['ValidationLength'] = '{2,20}';//字符长度

    @zwm 我正在做个中文分支,直接集成好适合中文的配置和插件、主题,方便大家使用,如果你还没选好,还可以考虑vanilla
    zwm
        32
    zwm  
    OP
       2012-03-18 21:10:41 +08:00
    @chuck911 太好了,真是非常感谢,确实很喜欢vanilla,但它有些方面不太符合国人的应用习惯。不知道您有没有想法做个vanilla的中文社区,把对vanilla感兴趣的人聚合在一起,研究开发vanilla,让它更为好用。
    chuck911
        33
    chuck911  
       2012-03-18 22:34:43 +08:00
    @zwm 你也有这个想法真好。其实我半年前就拿下了 vanillaforums.cn 这个域名,只是挖的坑太多,都那这个坑淡忘了... 那我们就开启这个计划吧!
    zwm
        34
    zwm  
    OP
       2012-03-19 13:16:35 +08:00
    @chuck911 vanillaforums.cn 开放的时候通知我一下。另外对于vanilla forums的改进我提个意见,就是它的页面链接地址。如果是英文论坛,vanilla的页面地址很不错,跟帖子题目是一致的。但换成中文论坛就有些尴尬了,帖子的链接地址就变成好大一堆字母、数字、百分号的集合体,不说别的,转个地址就很不方便,也不美观。我觉得这点在中文版应该改进一下,变成数字、字母规律组合的短地址比较好。
    chuck911
        35
    chuck911  
       2012-03-19 14:06:19 +08:00
    @zwm 好的
    你说的URL的情况,在多数现代浏览器里应该不会出现,IE8有没有我不太清楚
    我觉得这是趋势,而且搜索引擎也会检索url里的文字,当然,我可以把这个作为可配置选项
    zwm
        36
    zwm  
    OP
       2012-03-19 14:50:33 +08:00
    @chuck911 是,在浏览器里很好,就是贴出来真是好大一坨,比如这里26楼那一堆。
    zwm
        37
    zwm  
    OP
       2012-03-22 22:26:52 +08:00
    @chuck911 vanilla中文分支进展如何?一直关注中。
    huihen
        38
    huihen  
       2012-04-09 17:22:46 +08:00
    @chuck911 有个事情想请教下,我也用vanilla搭了个论坛
    问题是移动上网访问不了那种移动专门的界面啊
    就出现
    Bonk
    Something funky happened. Please bear with us while we iron out the kinks.
    我看你的网站挺成功的,移动上网可以访问移动界面
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3302 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 11:52 PVG 19:52 LAX 04:52 JFK 07:52
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86