Описание файла admin.log.tpl в Cotonti CMF
1. Назначение и место в системе
Шаблон admin.log.tpl отвечает за отображение журнала действий в административной панели Cotonti. Он используется для вывода системных логов, содержащих записи о действиях пользователей, IP-адресах, датах и группах, а также предоставляет администратору инструменты для фильтрации и управления логами.
Данный файл располагается по адресу:
/system/admin/tpl/admin.log.tpl
Он является частью административного интерфейса и работает совместно с соответствующими PHP-скриптами, обрабатывающими логи (admin.log.php).
2. Суть содержания кода, выполняемые задачи и условия
-
Вывод предупреждений
Подключает файл warnings.tpl, содержащий возможные системные предупреждения, ошибки или информационные сообщения.
-
Проверка административных прав
Проверяет, является ли текущий пользователь администратором. Если да, отображает кнопку очистки логов.
-
Вывод заголовка страницы логов
Показывает заголовок страницы с названием секции логов.
Выводит общее количество записей в базе.
-
Фильтрация логов по группам
Форма с выпадающим списком, позволяющая фильтровать логи по группам.
Варианты загружаются динамически, включая URL запроса, текущую выбранную опцию и название группы.
-
Таблица с записями логов
Заголовки колонок включают номер записи, дату, IP, пользователя, группу и текст лога.
Каждая строка заполняется данными из базы, включая ссылки на поиск IP и AJAX-переход к информации о группе.
-
Пагинация
Включает кнопки "Назад", "Вперед", текущий номер страницы, общее количество логов и записей на странице.
3. Комментарии к конструкциям <!-- ... -->
-
<!-- BEGIN: MAIN --> / <!-- END: MAIN -->
- Основной блок шаблона, который движок Cotonti разберет и выведет.
-
<!-- IF {PHP.usr.isadmin} --> / <!-- ENDIF -->
- Условие, отображающее кнопку очистки логов только администраторам.
-
<!-- BEGIN: GROUP_SELECT_OPTION --> / <!-- END: GROUP_SELECT_OPTION -->
- Динамический блок, формирующий опции выпадающего списка фильтрации логов по группам.
-
<!-- BEGIN: LOG_ROW --> / <!-- END: LOG_ROW -->
- Динамический блок, создающий строки логов с данными из базы.
4. Характеристика используемого HTML/CSS/JS
HTML
- Используется классическая табличная разметка (
<table>), что логично для представления логов.
- Формы
<form> применяются для фильтрации.
<a> с AJAX-классами позволяют динамически загружать контент без перезагрузки страницы.
CSS
- Включает классы для стилизации таблицы, кнопок и элементов управления.
- Поддерживаются стили админки Cotonti, включая кастомные темы.
JS
- Используется событие для автоматического перенаправления при смене фильтра.
- AJAX-классы позволяют динамически загружать данные.
Вывод
Шаблон admin.log.tpl предназначен для отображения и управления системными логами в административной панели Cotonti.
Код построен на динамических блоках Cotonti CMF, поддерживает фильтрацию логов по группам, AJAX-обновления и пагинацию.
Используемый стиль HTML/CSS/JS соответствует стандартам админки Cotonti, сочетая табличную структуру, элементы управления и AJAX-действия.
<!-- BEGIN: MAIN --> <!-- Начало основного блока шаблона, который будет разбираться Cotonti CMF через $t->parse('MAIN'); -->
{FILE "{PHP.cfg.system_dir}/admin/tpl/warnings.tpl"} <!-- Включение файла warnings.tpl, путь к которому формируется через переменную {PHP.cfg.system_dir} -->
<!-- IF {PHP.usr.isadmin} --> <!-- Условие: блок кода будет отображаться только для пользователей с административными правами -->
<div class="button-toolbar">
<a title="{PHP.L.adm_purgeall}" href="{ADMIN_LOG_URL_PRUNE}" class="ajax button large">{PHP.L.adm_purgeall}</a> <!-- Кнопка для очистки логов, доступная только администраторам -->
</div>
<!-- ENDIF --> <!-- Завершение условия -->
<div class="block">
<h2>{PHP.L.Log} ({ADMIN_LOG_TOTALDBLOG})</h2> <!-- Заголовок блока логов, отображающий название секции и общее количество логов -->
<div class="wrapper">
<form action="" class="margintop10 marginbottom10">{PHP.L.Group}: <!-- Форма для выбора группы логов -->
<select name="groups" size="1" onchange="redirect(this)"> <!-- Выпадающий список для фильтрации логов по группам -->
<!-- BEGIN: GROUP_SELECT_OPTION --> <!-- Начало блока с вариантами выбора групп логов -->
<option value="{ADMIN_LOG_OPTION_VALUE_URL}"{ADMIN_LOG_OPTION_SELECTED}>{ADMIN_LOG_OPTION_GRP_NAME}</option> <!-- Опция в списке, содержащая URL для фильтрации, выбранное состояние и название группы -->
<!-- END: GROUP_SELECT_OPTION --> <!-- Завершение блока вариантов выбора -->
</select>
</form>
<table class="cells">
<tr>
<td class="coltop w-5">#</td> <!-- Колонка с порядковым номером -->
<td class="coltop w-15">{PHP.L.Date} (GMT)</td> <!-- Колонка с датой события -->
<td class="coltop w-10">{PHP.L.Ip}</td> <!-- Колонка с IP-адресом -->
<td class="coltop w-15">{PHP.L.User}</td> <!-- Колонка с именем пользователя -->
<td class="coltop w-15">{PHP.L.Group}</td> <!-- Колонка с группой пользователя -->
<td class="coltop w-40">{PHP.L.Log}</td> <!-- Колонка с текстом лога -->
</tr>
<!-- BEGIN: LOG_ROW --> <!-- Начало блока, который будет повторяться для каждой строки в логе -->
<tr>
<td class="textcenter">{ADMIN_LOG_ROW_LOG_ID}</td> <!-- Вывод ID лога -->
<td class="textcenter">{ADMIN_LOG_ROW_DATE}</td> <!-- Вывод даты события -->
<td class="textcenter"><a href="{ADMIN_LOG_ROW_URL_IP_SEARCH}">{ADMIN_LOG_ROW_LOG_IP}</a></td> <!-- Ссылка на поиск по IP-адресу -->
<td class="textcenter">{ADMIN_LOG_ROW_LOG_NAME} </td> <!-- Имя пользователя, оставившего запись -->
<td class="textcenter"><a href="{ADMIN_LOG_ROW_URL_LOG_GROUP}" class="ajax">{ADMIN_LOG_ROW_LOG_GROUP}</a></td> <!-- Ссылка на группу пользователя с возможностью AJAX-загрузки -->
<td>{ADMIN_LOG_ROW_LOG_TEXT}</td> <!-- Текст записи в логе -->
</tr>
<!-- END: LOG_ROW --> <!-- Завершение блока строки лога -->
</table>
<p class="paging">
{ADMIN_LOG_PAGINATION_PREV}{ADMIN_LOG_PAGNAV}{ADMIN_LOG_PAGINATION_NEXT} <!-- Элементы пагинации: предыдущая, навигация, следующая страницы -->
<span>{PHP.L.Total}: {ADMIN_LOG_TOTALITEMS}, {PHP.L.Onpage}: {ADMIN_LOG_ON_PAGE}</span> <!-- Вывод общего количества записей и количества записей на странице -->
</p>
</div>
</div>
<!-- END: MAIN --> <!-- Завершение основного блока шаблона -->
4 минут чтения Sodium Carbonate