use*_*803 8 hook registration drupal-6
我想挂钩注册模块.我已经拥有一个使用我的旧网站的50000个用户的数据库.现在我正在迁移到Drupal.
我还没有将条目迁移到drupal数据库.我将检查我的旧数据库.
当用户尝试在Drupal中注册时,我需要检查他提供的用户名是否已经存在于50000(和不断增长的)条目列表中.如果它存在,我需要取消注册显示错误信息说用户名存在..
我应该使用哪个钩子?如果我的代码表明验证失败,我怎么能告诉drupal显示错误信息?
编辑:我挂钩到hook_user并检查'验证'操作.我能够验证并分配错误消息.但它适用于所有形式.我想仅验证新帐户创建表单.我怎样才能做到这一点?
谢谢.
Hen*_*pel 18
您应该使用注册表单注册其他验证回调函数hook_form_FORM_ID_alter(),如下所示:
// 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'));
}
}
Run Code Online (Sandbox Code Playgroud)