Рычаг в регистрацию Drupal и проверяет информацию о пользователе против бизнес-логики

Я хочу сцепиться в регистрационный модуль. У меня уже есть база данных 50 000 пользователей, которые используют мой старый веб-сайт. Теперь я мигрирую на Drupal.

Я все еще не переместил записи в drupal базу данных. Я буду проверять по своей старой базе данных.

Когда пользователь пытается зарегистрироваться в Drupal, я должен проверить, присутствует ли имя пользователя, которое он дал уже, в том списке 50000 (и растущий) записи. Если это существует, я должен отменить регистрацию, показывающую сообщение об ошибке, говоря, что имя пользователя существует..

Какой рычаг я должен использовать? Если мои кодовые группы, которые привела к сбою проверка, Как я могу сказать drupal отображать сообщение об ошибке?

Править: Я сцепился в hook_user и проверил на 'проверение' op. Я могу проверить и присвоить сообщения об ошибках. Но это происходит для всех форм. Я хочу проверить только новую форму создания учетной записи. Как я могу сделать это?

Спасибо.

8
задан user266803 15 February 2010 в 07:30
поделиться

1 ответ

Вы должны зарегистрировать дополнительную функцию обратного вызова валидации для формы регистрации, используя 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'));
  }
}
18
ответ дан 5 December 2019 в 06:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: