Назначение шаблона users.passrecover.tpl
Шаблон users.passrecover.tpl используется для отображения интерфейса страницы восстановления пароля пользователя в Cotonti CMF. Он предназначен для подачи запроса на восстановление доступа через указание электронной почты пользователя. Шаблон формирует HTML-разметку, которая включает инструкцию по восстановлению, форму для ввода email и уведомления о статусе запроса.
Этот шаблон визуализирует процесс взаимодействия пользователя с системой восстановления пароля, в то время как основная логика обработки реализована в PHP-коде модуля users.
Основное содержание и задачи шаблона
-
Навигационная цепочка (breadcrumbs)
Шаблон проверяет, включён ли параметр homebreadcrumb в конфигурации сайта. Если он активен, отображается навигационная цепочка ({PASSRECOVER_BREADCRUMBS}), указывающая текущий путь к странице восстановления пароля.
-
Заголовок страницы
Отображается заголовок страницы, задаваемый переменной {PASSRECOVER_TITLE}. Обычно это локализованный текст, например, "Восстановление пароля".
-
Сообщения о статусе
Шаблон выводит уведомления в зависимости от значения переменной {PHP.msg}:
- Если
msg == 'request', отображается сообщение {PHP.L.pasrec_mailsent} (например, "На вашу электронную почту было отправлено письмо с инструкциями").
- Если
msg == 'auth', отображается сообщение {PHP.L.pasrec_mailsent2} (например, "Пароль успешно обновлён. Проверьте свою почту").
- Если переменная
{PHP.msg} отсутствует или пуста, отображается список инструкций и форма для ввода email.
-
Инструкции для пользователя
Отображается упорядоченный список (<ol>), содержащий текстовые шаги, объясняющие процесс восстановления пароля. Эти шаги локализованы через языковые строки ({PHP.L.pasrec_explain1}, {PHP.L.pasrec_explain2}, {PHP.L.pasrec_explain3}).
-
Форма ввода email
Основной элемент шаблона — форма с методом POST, содержащая поле для ввода адреса электронной почты (<input type="text" name="email">). После ввода email пользователь может отправить запрос на восстановление пароля, нажав кнопку "Отправить" (<button type="submit">).
-
Заключительная инструкция
После формы отображается дополнительная пояснительная строка ({PHP.L.pasrec_explain4}), завершающая описание процесса.
Список переменных и их назначение
-
{PHP.cfg.homebreadcrumb}
Проверяет, включена ли в конфигурации сайта настройка отображения хлебных крошек.
-
{PASSRECOVER_BREADCRUMBS}
Отображает навигационную цепочку (хлебные крошки).
-
{PASSRECOVER_TITLE}
Заголовок страницы восстановления пароля.
-
{PHP.msg}
Переменная, содержащая статус действия, например, 'request' (запрос на восстановление отправлен) или 'auth' (восстановление выполнено).
-
{PHP.L.pasrec_mailsent}
Локализованная строка, сообщающая, что письмо отправлено.
-
{PHP.L.pasrec_mailsent2}
Локализованная строка, сообщающая, что пароль был успешно изменён.
-
{PHP.L.pasrec_explain1}, {PHP.L.pasrec_explain2}, {PHP.L.pasrec_explain3}
Локализованные строки, объясняющие процесс восстановления пароля.
-
{PASSRECOVER_URL_FORM}
URL-адрес, на который отправляется форма восстановления пароля.
-
{PHP.L.pasrec_youremail}
Локализованная строка "Ваш email".
-
{PHP.L.pasrec_request}
Локализованная строка "Отправить" (текст кнопки).
-
{PHP.L.pasrec_explain4}
Заключительное пояснение, отображаемое под формой.
Комментарии к конструкциям <!-- ... -->
-
<!-- BEGIN: MAIN --> и <!-- END: MAIN -->
Основной логический блок шаблона, в котором находятся все элементы страницы восстановления пароля. Этот блок передаётся на обработку методом parse('MAIN') объекта XTemplate.
-
<!-- IF {PHP.cfg.homebreadcrumb} --> и <!-- ENDIF -->
Условие, проверяющее, включена ли функция отображения хлебных крошек. Если условие истинно, отображается блок с навигационной цепочкой.
-
<!-- IF {PHP.msg} == 'request' --> и <!-- ENDIF -->
Условие для проверки статуса запроса на восстановление. Если запрос был отправлен, отображается сообщение об успешной отправке письма.
-
<!-- IF {PHP.msg} == 'auth' --> и <!-- ENDIF -->
Условие, проверяющее успешность восстановления пароля. Если переменная msg содержит 'auth', выводится сообщение об успешной смене пароля.
-
<!-- IF !{PHP.msg} --> и <!-- ENDIF -->
Условие, выполняющееся, если переменная msg пуста или отсутствует. В этом случае отображаются инструкции по восстановлению и форма ввода email.
Характеристика стиля HTML/CSS
-
HTML
Используется семантически правильная структура: <div> для обёртки, <ol> для упорядоченного списка инструкций, <form> для формы ввода email, <input> для текстового поля и <button> для кнопки отправки.
-
CSS
Вёрстка предполагает использование классов (block, text) для стилизации элементов. Эти классы должны быть определены в стилях темы сайта.
-
Адаптивность
Код предполагает минимальные требования для отображения на разных устройствах. Однако полноценная адаптивность зависит от CSS-правил темы.
-
Доступность (Accessibility)
Поля ввода и кнопки не имеют явных атрибутов aria-* или label, что может быть улучшено для пользователей с ограниченными возможностями.
Преимущества шаблона
- Простота: минималистичный дизайн, лёгкий для понимания и редактирования.
- Гибкость: использование локализованных строк позволяет легко адаптировать шаблон для разных языков.
- Расширяемость: можно добавить дополнительные поля или изменить оформление, не затрагивая логику обработки.
<!-- BEGIN: MAIN --> <!-- Начало основного логического блока Cotonti, который будет обработан методом $t->parse('MAIN'); -->
<div class="block">
<!-- IF {PHP.cfg.homebreadcrumb} --> <!-- Проверка, включены ли "хлебные крошки" в конфигурации PHP.cfg.homebreadcrumb -->
<div class="breadcrumbs">{PASSRECOVER_BREADCRUMBS}</div> <!-- Вывод навигационных хлебных крошек, если они включены -->
<!-- ENDIF --> <!-- Закрытие условия -->
<h2 class="users">{PASSRECOVER_TITLE}</h2> <!-- Заголовок страницы восстановления пароля -->
<!-- IF {PHP.msg} == 'request' --> <!-- Проверка, содержит ли PHP.msg значение 'request' (отправлен запрос на восстановление) -->
<p>{PHP.L.pasrec_mailsent}</p> <!-- Вывод сообщения о том, что письмо с инструкцией отправлено -->
<!-- ENDIF --> <!-- Закрытие условия -->
<!-- IF {PHP.msg} == 'auth' --> <!-- Проверка, содержит ли PHP.msg значение 'auth' (пароль успешно изменен) -->
<p>{PHP.L.pasrec_mailsent2}</p> <!-- Вывод сообщения об успешном изменении пароля -->
<!-- ENDIF --> <!-- Закрытие условия -->
<!-- IF !{PHP.msg} --> <!-- Проверка, если PHP.msg не установлен (значение пустое) -->
<ol>
<li>{PHP.L.pasrec_explain1}</li> <!-- Первый пункт инструкции по восстановлению пароля -->
<li>{PHP.L.pasrec_explain2}</li> <!-- Второй пункт инструкции -->
<li>{PHP.L.pasrec_explain3}</li> <!-- Третий пункт инструкции -->
</ol>
<form id="password-recover" name="reqauth" action="{PASSRECOVER_URL_FORM}" method="post">
{PHP.L.pasrec_youremail} <input type="text" class="text" name="email" value="" size="20" maxlength="64" />
<button type="submit">{PHP.L.pasrec_request}</button> <!-- Кнопка отправки запроса на восстановление пароля -->
</form>
<p>{PHP.L.pasrec_explain4}</p> <!-- Дополнительное пояснение после формы восстановления -->
<!-- ENDIF --> <!-- Закрытие условия -->
</div>
<!-- END: MAIN --> <!-- Закрытие основного логического блока Cotonti -->
5 minutes read Sodium Carbonate