V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zwm
V2EX  ›  问与答

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

  •  
  •   zwm · 2012-03-14 22:47:09 +08:00 · 6669 次点击
    这是一个创建于 4635 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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   ·   实用小工具   ·   5259 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 07:06 · PVG 15:06 · LAX 23:06 · JFK 02:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.