Назначение шаблона users.register.tpl
Шаблон users.register.tpl отвечает за отображение интерфейса страницы регистрации пользователей в Cotonti CMF. Он расположен в папке /modules/users/tpl/ и служит для формирования HTML-формы регистрации, включая поля ввода данных, таких как имя пользователя, email и пароль, а также блок проверки CAPTCHA.
Данный шаблон полностью настраивает визуальную часть страницы регистрации, а сама логика обработки данных (включая валидацию и сохранение пользователя в базе данных) реализована в PHP-коде модуля "Пользователи" (users).
Основное содержание и задачи шаблона
-
Навигационная цепочка (breadcrumbs)
Шаблон проверяет, включён ли параметр homebreadcrumb в конфигурации сайта (cfg.homebreadcrumb). Если он активен, отображается навигационная цепочка ({USERS_REGISTER_BREADCRUMBS}), указывающая путь к странице регистрации.
-
Заголовок страницы
Отображается заголовок, задаваемый через переменную {USERS_REGISTER_TITLE}, которая, как правило, локализована и содержит текст вроде "Регистрация нового пользователя".
-
Обработка предупреждений
Подключается шаблон warnings.tpl из текущей темы сайта, который отвечает за отображение ошибок или уведомлений (например, если форма регистрации заполнена неправильно).
-
Форма регистрации
Главный элемент шаблона — HTML-форма с методами POST и поддержкой загрузки файлов (enctype="multipart/form-data"). В ней содержатся обязательные поля для ввода:
- Имя пользователя (
{USERS_REGISTER_USER}).
- Электронная почта (
{USERS_REGISTER_EMAIL}) с подсказкой ({PHP.L.users_validemailhint}).
- Пароль (
{USERS_REGISTER_PASSWORD}).
- Повторный ввод пароля (
{USERS_REGISTER_PASSWORDREPEAT}).
-
CAPTCHA
Если в конфигурации сайта активирован модуль CAPTCHA (cfg.captchamain), отображается блок с изображением CAPTCHA ({USERS_REGISTER_VERIFY_IMG}) и полем для ввода её значения ({USERS_REGISTER_VERIFY_INPUT}).
-
Отправка формы
В шаблоне предусмотрена кнопка отправки формы (<button type="submit">), которая передаёт данные на сервер для дальнейшей обработки.
Список переменных и их назначение
-
{PHP.cfg.homebreadcrumb}
Проверяет, включена ли в конфигурации сайта настройка отображения хлебных крошек.
-
{USERS_REGISTER_BREADCRUMBS}
Переменная для отображения навигационной цепочки (хлебных крошек).
-
{USERS_REGISTER_TITLE}
Заголовок страницы регистрации, задаваемый модулем и локализованный через языковые файлы.
-
{FILE "{PHP.cfg.themes_dir}/{PHP.usr.theme}/warnings.tpl"}
Подключает шаблон warnings.tpl из активной темы для отображения уведомлений и ошибок.
-
{USERS_REGISTER_SEND}
URL-адрес, на который отправляется форма регистрации.
-
{PHP.L.Username}
Локализованная строка "Имя пользователя".
-
{USERS_REGISTER_USER}
Поле ввода для имени пользователя.
-
{PHP.L.users_validemail}
Локализованная строка "Электронная почта".
-
{USERS_REGISTER_EMAIL}
Поле ввода для электронной почты.
-
{PHP.L.users_validemailhint}
Подсказка под полем электронной почты (например, "Пожалуйста, укажите действующий email").
-
{PHP.L.Password}
Локализованная строка "Пароль".
-
{USERS_REGISTER_PASSWORD}
Поле ввода для пароля.
-
{PHP.L.users_confirmpass}
Локализованная строка "Подтвердите пароль".
-
{USERS_REGISTER_PASSWORDREPEAT}
Поле ввода для повторного ввода пароля.
-
{PHP.cfg.captchamain}
Проверяет, активен ли модуль CAPTCHA.
-
cot_plugin_active($this)
Функция проверки активности плагина CAPTCHA.
-
{USERS_REGISTER_VERIFY_IMG}
Изображение CAPTCHA.
-
{USERS_REGISTER_VERIFY_INPUT}
Поле ввода для проверки CAPTCHA.
-
{PHP.L.Submit}
Локализованная строка "Отправить", отображаемая на кнопке.
Комментарии к конструкциям <!-- ... -->
-
<!-- BEGIN: MAIN --> и <!-- END: MAIN -->
Это основной логический блок шаблона, в котором находится весь код страницы регистрации. Блок передаётся на обработку методом parse('MAIN') объекта XTemplate.
-
<!-- IF {PHP.cfg.homebreadcrumb} --> и <!-- ENDIF -->
Условная конструкция, проверяющая включение хлебных крошек в конфигурации сайта. Если условие истинно, отображается блок с навигационной цепочкой.
-
<!-- IF {PHP.cfg.captchamain|cot_plugin_active($this)} --> и <!-- ENDIF -->
Условная конструкция, проверяющая, активен ли модуль CAPTCHA. Если условие истинно, отображается блок для проверки CAPTCHA.
Характеристика стиля HTML/CSS
-
HTML
Код шаблона построен на семантически правильной структуре: используется <table> для организации формы, <tr> и <td> для размещения полей ввода и их подписей. Атрибуты классов (width30, width70, small) используются для стилизации.
-
CSS
Стилизацию шаблона предполагается выполнять через классы, определённые в теме сайта. Используются классы с чёткими названиями, например block, valid, width30.
-
JS
В данном шаблоне JavaScript-код явно не представлен, что делает его лёгким для интеграции и адаптации. Любая дополнительная функциональность может быть добавлена на уровне темы или сторонних скриптов.
<!-- BEGIN: MAIN --> <!-- Начало основного логического блока Cotonti, который будет обработан методом $t->parse('MAIN'); -->
<div class="block">
<!-- IF {PHP.cfg.homebreadcrumb} --> <!-- Проверка, включены ли "хлебные крошки" в конфигурации PHP.cfg.homebreadcrumb -->
<div class="breadcrumbs">{USERS_REGISTER_BREADCRUMBS}</div> <!-- Вывод навигационных хлебных крошек, если они включены -->
<!-- ENDIF --> <!-- Закрытие условия -->
<h2 class="users">{USERS_REGISTER_TITLE}</h2> <!-- Заголовок страницы регистрации -->
{FILE "{PHP.cfg.themes_dir}/{PHP.usr.theme}/warnings.tpl"} <!-- Включение файла шаблона warnings.tpl для отображения возможных предупреждений -->
<form id="user-register" name="register" action="{USERS_REGISTER_SEND}" method="post" enctype="multipart/form-data">
<table class="list">
<tr>
<td class="width30">{PHP.L.Username}:</td> <!-- Метка поля ввода имени пользователя -->
<td class="width70">{USERS_REGISTER_USER} *</td> <!-- Поле для ввода имени пользователя, обязательное для заполнения -->
</tr>
<tr>
<td>{PHP.L.users_validemail}:</td> <!-- Метка поля ввода email -->
<td>
{USERS_REGISTER_EMAIL} * <!-- Поле для ввода email, обязательное для заполнения -->
<p class="small">{PHP.L.users_validemailhint}</p> <!-- Подсказка о необходимости ввода корректного email -->
</td>
</tr>
<tr>
<td>{PHP.L.Password}:</td> <!-- Метка поля ввода пароля -->
<td>{USERS_REGISTER_PASSWORD} *</td> <!-- Поле для ввода пароля, обязательное для заполнения -->
</tr>
<tr>
<td>{PHP.L.users_confirmpass}:</td> <!-- Метка поля подтверждения пароля -->
<td>{USERS_REGISTER_PASSWORDREPEAT} *</td> <!-- Поле подтверждения пароля, обязательное для заполнения -->
</tr>
<!-- IF {PHP.cfg.captchamain|cot_plugin_active($this)} --> <!-- Проверка, активен ли плагин CAPTCHA в конфигурации -->
<tr>
<td>{USERS_REGISTER_VERIFY_IMG}</td> <!-- Изображение CAPTCHA -->
<td>{USERS_REGISTER_VERIFY_INPUT} *</td> <!-- Поле для ввода CAPTCHA, обязательное для заполнения -->
</tr>
<!-- ENDIF --> <!-- Закрытие условия -->
<tr>
<td colspan="2" class="valid">
<button type="submit">{PHP.L.Submit}</button> <!-- Кнопка отправки формы регистрации -->
</td>
</tr>
</table>
</form>
</div>
<!-- END: MAIN --> <!-- Закрытие основного логического блока Cotonti -->
4 минут чтения Sodium Carbonate