这是我的目标:
以内容配置文件 CCK 字段“field_firstname”和“field_lastname”自动生成用户名。
我的方法:使用 hook_form_altar 和提交处理程序创建一个自定义模块来自动附加用户名而不触及数据库方案。
我的问题:我不知道如何访问注册表单上的内容配置文件附加 CCK 字段。现在我有这个的实时副本..我正在使用 var_dump($form) 来查找字段。 Live location here .
这是我的模块代码显示,任何指针将不胜感激
/**
* Implementation of hook_form_alter().
*
*/
function realname_registration_form_alter(&$form, $form_state, $form_id) {
switch ($form_id) {
case 'user_register':
if (isset($form['account']) && is_array($form['account'])) {
$form['account']['name']['#type'] = 'hidden';
$form['account']['name']['#value'] = user_password();
$form['account']['mail']['#title'] = t('E-mail');
}
else {
$form['name']['#type'] = 'hidden';
$form['name']['#value'] = user_password();
$form['mail']['#title'] = t('E-mail');
}
//$form['#submit'][] = 'realname_registration_name_submit';
print "<pre>";
print_r($form);
print "</pre>";
break;
}
}
/**
* submit handler
*
*/
function realname_registration_name_submit($form, &$form_state) {
}
最佳答案
在表单中提交的值始终位于 $form_state['values'][...]
.如果你不知道它们叫什么,你可以打印出 $form_state
变量并检查它。
在您的情况下,看起来这是您需要的:
$first_name = $form_state['values']['field_firstname'];
$last_name = $form_state['values']['field_lastname'];
您需要注意的一件事是,用户名必须是唯一的,而名称可能不是。您还需要为新用户公开用户名,以便他们知道如何登录。
关于drupal - 访问 Drupal 注册表中的内容配置文件 CCK 字段 (user_register),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4208776/