Запрещённые для регистрации usernames

Главные вкладки

Аватар пользователя Сергей Березин Сергей Березин 10 октября 2016 в 12:10

Например имеем большой список запрещённых для регистрации имён пользователя. 1000 или более таких имён.

Как можно реализовать этот запрет?

Модуль User restrictions не подходит так как там нет возможности создания большого списка запрещённых имён. Там только по одному имени можно задавать запрет. Замучаешься создавать 1000 имён.

Комментарии

Аватар пользователя mbaev mbaev 10 октября 2016 в 13:41

У меня нет идей. Только программировать. Через hook_form_FORM_ID_alter добавить свою функицю валидации

<?php
/**
 * Implements hook_form_FORM_ID_alter().
 */
function example_form_user_register_form_alter(&$form, &$form_state$form_id) {
  
$form['#validate'][] = 'example_user_name_validate';
}
?>

И в функции example_user_name_validate реализовать свою логику.

Аватар пользователя mbaev mbaev 10 октября 2016 в 15:04

Думаю, вам нужно чуть-чуть подучить программирование. Затем создаете свой модуль с каким-либо логическим названием, вставляете в него то, что я дал выше. И все сработает.

Еще есть предположение, что вам поможет модуль User restrictions.

P.S.
Исправьте орфографические ошибки в заголовке!

Аватар пользователя Сергей Березин Сергей Березин 10 октября 2016 в 15:14

Я написал по поводу указанного модуля - он есть у меня, но он не может помочь. Он по одному имени добавляет, а нужно разом огромный список имён добавить.

Модуль умею делать, но всё равно не ясно что и как.

Аватар пользователя mbaev mbaev 10 октября 2016 в 15:20

Сергей Березин wrote:
Я написал по поводу указанного модуля - он есть у меня, но он не может помочь.

Да, точно.

Тогда мой вариант смотрите. Там я привел пример валидации формы регистрации. Вам осталось реализовать что-то типо этого

<?php
function example_user_name_validate($form, &$form_state) {
  
$diallowed_names = array(/* список запрещеных имен */); 
  if(
in_array($form_state['values']['name'], $diallowed_names)) {
    
form_set_error('name't('Disallowed user name.'));
  }
}
?>
Аватар пользователя mbaev mbaev 10 октября 2016 в 15:40

Упрощенный вариант - да, только не забудьте в кавычки поместить: "username1", "username2",.... Когда поймете как создавать админские страницы, то можно будет

  1. создать поле "textarea"
  2. засунуть туда список через запятую
  3. распарсить в массив
  4. сохранить с помощью variable_set
  5. извлекать этот список в функции валидации, которую вы уже имеете с помощью функции variable_get
Аватар пользователя Сергей Березин Сергей Березин 10 октября 2016 в 17:41

Вот и хочу понять как создать и/или зарезервировать одним махом.
Есть список в txt файле.
Имена пользователей разделены запятой.

Можно напрямую (через phpnyadmin) занести этот список в базу и как?

Аватар пользователя Сергей Березин Сергей Березин 10 октября 2016 в 19:01

Да это я понимаю.
Но я не знаю как добавить сразу весь список.
Я только по одному пользователю могу добавлять - это и через админку можно делать, но замучаешься.
Нужно одним махом добавить весь список.

Аватар пользователя Studio VIZA Studio VIZA 10 октября 2016 в 19:51
3

Сергей Березин wrote:

Я только по одному пользователю могу добавлять

Нанять надо трёх сессионников, каждому по 3тр, и 330 ников, через сутки они отрапортуют о завершении работы. Обычная рутина.