Регистрация по логину (+ убрать Email из регистрации)

Evg Evg 5 Июня (ред)

Сам категорически не сторонник этих изменений (множество причин) но попросили, написал, как сделать:

  1. Убираем поле mail из шаблона для регистрации

В файле:

/_block/form/registration.php

Комментируем так:

<!--fieldset>
  <label for="email"><?= __('app.email'); ?></label>
  <input name="email" id="email" type="email" required>
  <div class="help"><?= __('app.work_email'); ?>...</div>
  <small class="red"></small>
</fieldset-->

Смотрим страницу регистрации и видим, что поля Email нет.

  1. Убираем проверку Email из php файлов…

В файле: app/Validate/RulesRegistration.php

Комментируем (строка 39):

self::checkEmail($data['email'], $redirect);

Должно получиться:

// self::checkEmail($data['email'], $redirect);

В файле: app/Controllers/Auth/RegisterController.php

Перед (60 строка):

$active_uid = UserModel::create(
    [
        'login'                => $data['login'],
        'email'                => $data['email']...

Добавим:

$data['email'] = '';

Должно получиться:

$data['email'] = '';
$active_uid = UserModel::create(
    [
        'login'                => $data['login'],
        'email'                => $data['email']...
  1. В файле конфига, убираем отправку почты на Email

В файле: config/general.php

Ставим mail_check на false, должно получиться

'mail_check'  =>  false,

Готово! Регистрация работает.

Не забываем убрать Email от туда, где он есть. Например: /setting

Теперь делаем авторизацию

В файле: resources/views/default/_block/form/login.php

Вторую строку:

<input name="email" type="email" placeholder="<?= __('app.email'); ?>" required="">

Заменяем на:

<input name="login" placeholder="<?= __('app.nickname'); ?>" required="">

В файле: app/Validate/RulesLogin.php комментируем 16 и 18 строку:

// self::email($data['email'], $redirect);

// $user = AuthModel::getUser($data['email'], 'email');

А далее добавляем (в 19 строку):

$user = AuthModel::getUser($data['login'], 'login');

Всё! Авторизация работает по логину.\

Актуально на 06.06.2024

Закрыт