Чтобы запретить кириллические логины на Drupal7 надо было создать правила в "правилах доступа". На Drupal8 я перерыл всю панель управления и не нашёл ничего подобного. Подскажите как запретить кириллические логины при регистрации на Drupal8 ?
Как запретить кириллические логины при регистрации?
Главные вкладки
Лучший ответ
1
на Drupal7 надо было создать правила в "правилах доступа"
Ты об этом? Что-то попробовал в 7-ке, но страницы admin/access/rules/add нет. Поэтому хз. как-там было, и как теперь. Могу модуль подкинуть
<?php
/**
* @file
* Username ruler module.
*/
use Drupal\Core\Form\FormStateInterface;
/**
* Implements hook_form_alter()
*/
function username_ruler_form_alter(&$form, FormStateInterface $form_state, $form_id) {
if(
in_array($form_id, ['user_form', 'user_register_form'])){
$form['#validate'][] = 'username_ruler_user_validate';
$form['account']['name']['#description'] .= t(' Forbid сyrillic characters');
}
}
function
username_ruler_user_validate(&$form, FormStateInterface $form_state){
$name = $form_state->getValue('name');
if (preg_match("/[а-я]+/ui", $name)) {
$form_state->setErrorByName('name', t('Username cannot contain cyrillic characters, sorry'));
}
}
?>
Комментарии
Ты об этом? Что-то попробовал в 7-ке, но страницы admin/access/rules/add нет. Поэтому хз. как-там было, и как теперь. Могу модуль подкинуть
<?php
/**
* @file
* Username ruler module.
*/ use Drupal\Core\Form\FormStateInterface; /**
* Implements hook_form_alter()
*/
function username_ruler_form_alter(&$form, FormStateInterface $form_state, $form_id) {
if(
in_array($form_id, ['user_form', 'user_register_form'])){$form['#validate'][] = 'username_ruler_user_validate';
$form['account']['name']['#description'] .= t(' Forbid сyrillic characters');
}
}
function
username_ruler_user_validate(&$form, FormStateInterface $form_state){$name = $form_state->getValue('name');
if (preg_match("/[а-я]+/ui", $name)) {
$form_state->setErrorByName('name', t('Username cannot contain cyrillic characters, sorry'));
}
}
?>
Модуль работает. Проблема решена, спасибо.