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