Я не знаю о существующем модуле, позволяющем добавить пользовательскую проверку, но это довольно легко реализовать, используя действие 'validate' hook_user()
:
function yourModule_user($op, &$edit, &$account, $category = NULL) {
// Are we in the validation phase of a new user registration?
if ('validate' == $op && 'user_register' == $edit['form_id'] && 'account' == $category) {
// Yes, do custom validation...
// NOTE: Just an example to validate by email.
// Check the other elements in $edit array (e.g. 'name') for more options
$mail_is_valid = yourModule_custom_mail_validation($edit['mail']);
// Is the mail address OK?
if (!$mail_is_valid) {
// No, set error on mail form field
form_set_error('mail', t('your custom error message'));
}
}
}
Это приведет к остановке процесса регистрации и повторному отображению формы регистрации с сообщением об ошибке в почтовом поле, если yourModule_custom_mail_validation()
не возвращает TRUE.
Если вы хотите, чтобы проверка проводилась для существующих пользователей, также редактирующих свою учетную запись, вы можете удалить
&& 'user_register' == $edit['form_id']
часть из первого предложения if - код будет запускаться для каждого пользовательского представления формы редактирования, а не только для регистрации.