Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Module 如何在注册期间在drupal中生成特定模式的用户名_Module_Drupal 7_Registration - Fatal编程技术网

Module 如何在注册期间在drupal中生成特定模式的用户名

Module 如何在注册期间在drupal中生成特定模式的用户名,module,drupal-7,registration,Module,Drupal 7,Registration,我想生成一个用户名st+他们的名字+他们的姓氏的前两个首字母缩写 创建特定模式的username模块很少,但没有一个能够满足我的需求。我不是Drupal的模块专家。你能做的就是安装模块: 导航到此模块的配置页面:admin/config/people/accounts/patterns 然后,在“其他设置”部分,您可以选中“在模式中评估PHP”选项 这允许您在“用户名模式”字段中执行PHP。需要考虑两件事: PHP在令牌替换之后执行,这允许您实际操作字符串 您需要回显最终结果 确保php用标记包

我想生成一个
用户名
st+他们的
名字
+他们的
姓氏
的前两个
首字母缩写


创建特定模式的
username
模块很少,但没有一个能够满足我的需求。我不是Drupal的模块专家。

你能做的就是安装模块:

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

然后,在“其他设置”部分,您可以选中“在模式中评估PHP”选项

这允许您在“用户名模式”字段中执行PHP。需要考虑两件事:

  • PHP在令牌替换之后执行,这允许您实际操作字符串
  • 您需要
    回显
    最终结果
  • 确保php用
    标记包装。此外,如果出现语法错误,则只有在注册时(或在执行脚本时)才会看到该错误

    现在,假设您已将用户配置为具有
    名字
    字段和
    姓氏
    字段(具有这些特定字段名)

    您的PHP可以如下所示:

    <?php 
      $initials = substr("[user:field-first-name]", 0, 2);
      echo 'str' . $initials . "[user:field-last-name]";
    ?>
    
    
    
    首先,请注意,令牌位于双引号之间,以确保令牌输出的内容被PHP视为字符串

    第二,php函数用于获取名字的前两个字母

    现在,我不知道的事情

    • 我不知道如果两个用户恰好拥有相同的用户名会发生什么
    • 我不知道如果用户在他的名字中输入双引号会发生什么,这可能很危险,你可能想用
      stru\u replace
      或类似的东西来逃避它

    非常感谢您提供的解决方案。我最终制作了定制模块。但你的解决方案是完美的!再次感谢您的时间,没问题!事实上,我对这个模块一无所知,你的问题让我仔细研究了一下!谢谢你!