如何在注册过程中生成drupal中特定模式的用户名

时间:2016-07-28 02:19:36

标签: module drupal-7 registration username

我想生成usernames + first name + last name的{​​{1}} st + 前两个首字母。

创建username特定模式的模块很少,但它们都不能满足我的要求。我不是Drupal模块专家。

1 个答案:

答案 0 :(得分:2)

您可以做的是安装automatic username模块:

导航到此模块的配置页面:admin / config / people / accounts / patterns

然后,在"其他设置"您可以查看选项"在模式中评估PHP。"

这允许您在"模式中为用户名"执行PHP。领域。需要考虑两件事:

  1. 在令牌替换后执行PHP,这允许您实际操作字符串。
  2. 您需要echo最终结果。
  3. 确保php包含<?php ?>标记。此外,如果您出现语法错误,则只会在注册时看到(或者每当脚本执行时都会看到。)

    现在让我们假设您已将用户配置为first_name字段和last_name字段(具有这些特定字段名称)

    你的PHP看起来像这样:

    <?php 
      $initials = substr("[user:field-first-name]", 0, 2);
      echo 'str' . $initials . "[user:field-last-name]";
    ?>
    

    首先,请注意令牌位于双引号之间,以确保令牌输出的内容被PHP视为字符串

    其次,php函数substr用于获取名字的2个首字母。

    现在,我不知道的事情

    • 如果两个用户碰巧拥有相同的结果用户名
    • ,我不知道会发生什么
    • 我不知道如果用户在他的名字中输入双引号会发生什么,可能是危险的,你可能想要用str_replace或类似的东西来逃避它
相关问题