我想挂接到注册模块。我已经拥有一个包含 50000 个使用我的旧网站的用户的数据库。现在我正在迁移到 Drupal。
我还没有将条目迁移到 drupal 数据库。我将检查我的旧数据库。
当用户尝试在 Drupal 中注册时,我需要检查他提供的用户名是否已经存在于 50000 个(并且还在不断增长)条目的列表中。如果存在,我需要取消注册,显示一条错误消息,指出用户名存在。
我应该使用哪个钩子?如果我的代码显示验证失败,我如何告诉 drupal 显示错误消息?
编辑:我连接到 hook_user 并检查“验证”操作。我能够验证并分配错误消息。但这种情况正在以各种形式发生。我只想验证新帐户创建表单。我怎样才能做到这一点?
Thanks.
您应该使用以下方法为注册表单注册一个额外的验证回调函数hook_form_FORM_ID_alter() http://api.drupal.org/api/function/hook_form_FORM_ID_alter/6,有点像这样:
// Alter the registration form
function yourModuleName_form_user_register_alter(&$form, &$form_state) {
// Add your own function to the array of validation callbacks
$form['#validate'][] = 'yourModuleName_user_register_validate';
}
// Perform your own validation
function yourModuleName_user_register_validate($form, &$form_state) {
// Extract the submitted name
$name = $form_state['values']['name'];
// Check it according to your own logic
$is_valid_name = your_check_for_valid_name();
// File error, when not valid
if (!$is_valid) {
form_set_error('name', t('Name already taken, please choose a different one'));
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)