gpt4 book ai didi

drupal - 在 Drupal 中 Hook 用户注册

转载 作者:行者123 更新时间:2023-12-01 16:15:56 25 4
gpt4 key购买 nike

我有一个站点,其中一些用户将由我们的员工注册,并且不会与他们关联电子邮件。我想将电子邮件字段保留为必填字段,因此我设计了一个随机电子邮件生成器。

 function generateRandomEmail() {
$email = 'noemail'. rand(0,1000000) . '@noemail.com';
return $email;
}

因此,我将其附加到用户注册表更改中,效果很好,有效地为这些用户生成了一封电子邮件。

但是,在此过程中,与主帐户部分关联的所有其他字段(密码、用户名、通知等)都消失了。我的问题是,是否有一种快速的方法来填充我不想更改的其余字段?我用过 drupal_render($form);在 tpl.php 中,但它不能以 alter 的形式工作。

这是我要修改表格的地方:

  function accountselect_user($op, &$edit, &$account, $category) {
if ($op == 'register') {

$fields['account']['mail'] = array(
'#type' => 'textfield',
'#default_value' => generateRandomEmail(),
);

最佳答案

您当前正在使用 hook_user 进行操作,但那是错误的地方。在 $op 'registration' 上,您可以返回要注入(inject)注册过程的附加字段,但不能更改现有字段。使用 hook_form_alter()hook_form_FORM_ID_alter()为此,例如:

function yourModule_form_user_register_alter(&$form, &$form_state) {
$form['account']['mail']['#default_value'] = generateRandomEmail();
}

您可能想要添加一个检查,以确保该请求实际上来自员工,因为上面的代码也会为普通注册表预填充电子邮件字段!


此外,请不要使用现有的第三方域生成“随机”邮件地址(例如“nomail.com”)。使用保留的“example.com”,或者更好的是,您自己拥有一个!

关于drupal - 在 Drupal 中 Hook 用户注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2383723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com