Назначение шаблона 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 -->