(!) Примеры и описание для более новой версии фреймворка 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, то необходимые скрипты и стили для работы механизма регистрации будут добавлены автоматически, больше ничего делать не потребуется.