如何在注册期间在drupal中生成特定模式的用户名
How to generate username of specific pattern in drupal during registration
我想生成 usernames
st + 前两个 他们 first name
的首字母 + 他们的 last name
.
创建特定模式 username
的模块很少,但其中 none 可以满足我的要求。我不是 Drupal
模块专家。
你可以做的是安装automatic username模块:
导航到该模块的配置页面:admin/config/people/accounts/patterns
然后,在 "Other settings" 部分中,您可以选中选项 "Evaluate PHP in pattern."
这允许您在 "Pattern for username" 字段中执行 PHP。需要考虑两件事:
- PHP 在令牌替换后执行,这允许您实际操作字符串。
- 您需要
echo
最终结果。
确保 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
或类似的东西来逃避它
我想生成 usernames
st + 前两个 他们 first name
的首字母 + 他们的 last name
.
创建特定模式 username
的模块很少,但其中 none 可以满足我的要求。我不是 Drupal
模块专家。
你可以做的是安装automatic username模块:
导航到该模块的配置页面:admin/config/people/accounts/patterns
然后,在 "Other settings" 部分中,您可以选中选项 "Evaluate PHP in pattern."
这允许您在 "Pattern for username" 字段中执行 PHP。需要考虑两件事:
- PHP 在令牌替换后执行,这允许您实际操作字符串。
- 您需要
echo
最终结果。
确保 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
或类似的东西来逃避它