Hlogin: Создание кнопок и страниц для регистрации

27 Декабря 2022 (ред)

(!) Примеры и описание для более новой версии фреймворка HLEB2 могут отличаться от приведенных в тексте.

Библиотека Hlogin, выполненная на PHP и JavaScript, предоставляет модуль регистрации для фреймворка HLEB.

Кнопки и ссылки

В официальной инструкции к библиотеке даётся краткое описание создания собственных кнопок для регистрации пользователя, но дизайн их, как и кнопок формы по умолчанию, хоть и представляет рабочий вариант, подойдёт не к каждому дизайну сайта.

Настройки отображения находятся в админпанели. В неё можно перейти из профиля администратора. Для отключения кнопок по умолчанию выберите Disabled(Отключён) для показа блока. Затем нужно сохранить изменения.

Как пример, в инструкции даётся создание собственного блока кнопок:

<?php if (\Phphleb\Hlogin\App\System\UserRegistration::checkPrimaryAndHigher()): ?>
    <button class="hlogin=variable-open-popup" data-type="UserProfile">
        Открыть профиль пользователя
    </button>
<?php  else: ?>
    <button class="hlogin=variable-open-popup" data-type="UserRegister">
        Открыть панель регистрации
    </button>
    <button class="hlogin=variable-open-popup" data-type="UserEnter">
        Открыть панель входа
    </button>
<?php endif; ?>
<button class="hlogin=variable-open-popup" data-type="ContactMessage">
    Открыть панель обратной связи
</button>
<button class="hlogin=set-design-to-popups" data-design="special">
    Версия для слабовидящих
</button>
<button class="hlogin=revert-design-to-popups">
    Вернуть версию по умолчанию
</button>

Как видно, здесь проверяется, не зарегистрирован ли пользователи и в зависимости от выбора предлагаются те или иные действия. Эти действия можно применить к любому блоку (не только button), имеющему соответствующий класс. Чаще всего необходимо открыть то или иное окно при помощи класса "hlogin=variable-open-popup" и аттрибута data-type. Аттрибут этот может принимать следующие значения:

UserRegister - открытие всплывающего окна с формой регистрации нового пользователя.

UserEnter - открытие всплывающего окна с формой входа на сайт.

UserProfile - открытие всплывающего окна с формой профиля (если не зарегистрирован, то будет форма входа).

ContactMessage - открытие всплывающего окна с формой отправки сообщения от пользователя (если включено в админпанели).

UserPassword - открытие всплывающего окна с формой восстановления пароля.

Таким образом, действие можно назначить не только кнопке, но и текстовой ссылке или любому другому HTML-блоку.

<p>
    <span class="hlogin=variable-open-popup" data-type="ContactMessage">
        Обратная связь
    </span>
</p>

Открытие этих меню также можно инициировать в JavaScript коде, вызвав соответствующую функцию. Для открытия всплывающего окна с формой обратной связи это функция hloginVariableOpenPopup('ContactMessage') как пример.

Страницы с регистрацией

Чтобы действие подключенной библиотеки распространялось на определённые страницы, лучше на все видимые, чтобы можно было отсеять заблокированных пользователей, нужно в маршрутизаторе добавить специальный контроллер-посредник Hlogin\Registrar.

   use Phphleb\Hlogin\App\System\UserRegistration as RegType;
use Phphleb\Hlogin\App\OriginData as RegData;

Route::before('Hlogin\Registrar', [RegType::UNDEFINED_USER, '>='])->getGroup();
   // Маршруты в этой группе будут доступны всем незарегистрированным и зарегистрированным пользователям
   // кроме помеченных удаленными и забаненых.
Route::endGroup();

Route::before('Hlogin\Registrar', [RegType::PRIMARY_USER, '>='])->getGroup();
   // Маршруты в этой группе будут доступны тем, кто прошёл предварительную регистрацию (но не подтвердил E-mail),
   // а также всем зарегистрированным пользователям (в том числе администраторам).
Route::endGroup();

Route::before('Hlogin\Registrar', [RegType::REGISTERED_USER, '>='])->getGroup();
   // Маршруты в этой группе будут доступны всем пользователям,
   // кто прошёл полную регистрацию (подтвердил E-mail, в том числе администраторам).
Route::endGroup();

Route::before('Hlogin\Registrar', [RegType::REGISTERED_COMANDANTE, '='])->getGroup();
    // Маршруты в этой группе будут доступны только администраторам.
Route::endGroup();

В случае, если необходимо проверить регистрацию для API, без вывода кнопок регистрации по умолчанию, в этом ответе вы можете найти исчерпывающую информацию.

Внимание! Для полноценной работы сайта способы входа/регистрации должны быть на всех страницах сайта, так как, если уровень доступа страницы не подходит пользователю, он не сможет зарегистрироваться или войти.

Если в маршрутизаторе страница подпадает под действие класса Hlogin\Registrar, то необходимые скрипты и стили для работы механизма регистрации будут добавлены автоматически, больше ничего делать не потребуется.

fomiash fomiash + 221
Опубликовано в PHP фреймворк HLEB
Для ответа вы можете авторизоваться


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.