HTML-шаблон header.tpl в Cotonti
Файл header.tpl — это важный элемент в системе шаблонов Cotonti CMF, отвечающий за формирование структуры и содержимого шапки (header) административной панели.
Основное назначение файла и его место в системе Cotonti: Файл header.tpl — это важный элемент в системе шаблонов Cotonti CMF, отвечающий за формирование структуры и содержимого шапки (header) административной панели. Он используется для создания верхней части интерфейса, которая будет видна пользователю при работе с административной частью сайта. Важно отметить, что это шаблонный файл, который активно использует систему XTemplate для обработки данных и вывода переменных, что позволяет динамически менять содержание в зависимости от состояния системы или прав пользователя.
Файл header.tpl является частью общей системы шаблонов и предназначен для адаптации внешнего вида административной части сайта, привязывая к шаблону соответствующие стили и данные. Этот шаблон также связан с другими шаблонами (например, admin.users.tpl, admin.index.tpl и т. д.), и позволяет создавать единообразный интерфейс для управления сайтом.
Возможности header.tpl:
- Динамическое обновление данных: Шаблон активно использует переменные, такие как
{PHP.usr.name},{PHP.cfg.mainurl},{PHP.cfg.icons_dir}, которые заполняются значениями в процессе обработки шаблона. Это позволяет шаблону быть адаптивным и динамичным. - Условия отображения: В шаблоне используются конструкции типа
<!-- IF {PHP.usr.admin_config} -->, которые проверяют, имеет ли пользователь определенные права, прежде чем отобразить элемент интерфейса. Это создает гибкую систему прав доступа, позволяя показывать или скрывать элементы в зависимости от уровня доступа пользователя. - Отображение навигации: В шаблоне описана структура навигации, которая зависит от прав администратора. В зависимости от того, какие права есть у пользователя (например,
admin_config,admin_structure), в шапке отображаются соответствующие ссылки на страницы настройки, структуры, расширений и пользователей. - Межстраничная навигация: Также шаблон управляет переключением между различными разделами административной панели, например, при переходе между различными модулями системы.
Задачи и условия, которые выполняет header.tpl:
- Отображение информации о пользователе: Шаблон выводит имя пользователя и количество личных сообщений, если они есть. Учитываются также настройки приватных сообщений, которые могут быть активированы в зависимости от наличия модуля PM.
- Отображение ссылок на разные разделы админки: В зависимости от прав пользователя отображаются ссылки на различные модули системы (например, конфигурации, структура, расширения и пользователи). Для каждого модуля проверяется, активен ли он, и если да, то ссылка выделяется.
- Адаптация под настройки сайта: Шаблон подставляет переменные из конфигурации (например, название сайта или описание), что позволяет кастомизировать вид шапки на основе настроек администрируемого сайта.
Характеристика стиля HTML/CSS/JS:
- HTML: Используется стандартная разметка HTML5, которая гарантирует совместимость с современными браузерами. Применяется несколько важных структурных элементов:
<ul>и<li>для создания списков навигации.<a>для создания гиперссылок.<figure>и<img>для изображений с возможностью добавления иконок для каждого пункта меню.<span>для выделения текста, например, в разделах навигации.
- CSS: Применяются внешние стили, подключаемые через теги
<link>, что позволяет изменять внешний вид элементов без изменения самого кода шаблона:- Использование CSS-файлов для администрирования интерфейса и общего оформления.
- Внешние стили, такие как
bootstrap-reboot.min.cssиbootstrap.min.css, обеспечивают адаптивность и современный внешний вид, в том числе мобильную версию интерфейса.
- JS: Прямо в данном файле не используется JavaScript, однако подключение к файлам
bootstrap.min.cssиadmin.cssможет косвенно означать использование JavaScript в других частях административной панели для работы с динамическими элементами, такими как выпадающие меню или модальные окна.
Итог: Шаблон header.tpl выполняет ключевую роль в создании гибкой и адаптивной административной панели для системы Cotonti. Он использует современные методы работы с HTML, CSS и переменными системы для создания динамичного и персонализированного интерфейса. Шаблон учитывает различные права пользователей и адаптирует отображаемые данные в зависимости от настроек и состояния системы.
шаблон шапки сайта в админке, код в файле "header.tpl" в Cotonti CMF, который находится по адресу: /system/admin/tpl/header.tpl
<!-- BEGIN: HEADER --> <!-- Это маркер начала блока, обрабатываемого методом $t->parse('HEADER') в Cotonti. -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<title>{HEADER_TITLE}</title> <!-- Это переменная, которую Cotonti заменяет на значение заголовка страницы. -->
<meta name="description" content="{HEADER_META_DESCRIPTION}" /> <!-- Значение переменной HEADER_META_DESCRIPTION будет подставлено в мета-тег description. -->
<meta name="keywords" content="{HEADER_META_KEYWORDS}" /> <!-- Значение переменной HEADER_META_KEYWORDS будет подставлено в мета-тег keywords. -->
<meta name="generator" content="Cotonti https://www.cotonti.com" /> <!-- Эта строка статична и указывает, что сайт сгенерирован на движке Cotonti. -->
{HEADER_BASEHREF} <!-- Выводит значение переменной HEADER_BASEHREF для указания базового пути для ссылок на странице. -->
{HEADER_HEAD} <!-- Выводит содержимое блока HEADER_HEAD, которое может быть динамически сгенерировано в PHP. -->
{HEADER_COMPOPUP} <!-- Вставляет содержимое блока HEADER_COMPOPUP, который может включать дополнительные элементы, такие как всплывающие окна. -->
<link href="{PHP.cfg.system_dir}/admin/tpl/inc/bootstrap-reboot.min.css" type="text/css" rel="stylesheet" />
<link href="lib/bootstrap/css/bootstrap.min.css" type="text/css" rel="stylesheet" />
<link href="{PHP.cfg.system_dir}/admin/tpl/inc/admin.css" type="text/css" rel="stylesheet" />
<link rel="shortcut icon" href="favicon.ico" />
</head>
<body>
<div id="user" class="body">
<ul>
<li>
<a href="{PHP|cot_url('users','m=profile')}">{PHP.usr.name}</a> <!-- Это ссылка на профиль пользователя, генерируется с помощью cot_url, выводит имя текущего пользователя {PHP.usr.name}. -->
<!-- IF {PHP.cot_modules.pm} -->
<span class="spaced">{PHP.cfg.separator}</span> <!-- Это разделитель, выводится только если модуль личных сообщений включен. -->
<a href="{PHP|cot_url('pm')}">
<!-- IF {PHP.usr.messages} == 0 -->
{PHP.L.Private_Messages} <!-- Если нет новых сообщений, выводится текст "Private Messages". -->
<!-- ELSE -->
{PHP.L.home_newpms}: {PHP.usr.messages} <!-- Если есть новые сообщения, выводится их количество. -->
<!-- ENDIF -->
</a>
<!-- ENDIF -->
<span class="spaced">{PHP.cfg.separator}</span> <!-- Это еще один разделитель, он всегда выводится между элементами. -->
{PHP.out.loginout} <!-- Это ссылка для выхода из системы, выводится автоматически с помощью {PHP.out.loginout}. -->
</li>
<li>
<a href="{PHP.cfg.mainurl}" title="{PHP.L.hea_viewsite}">
<!-- IF {PHP.cfg.maintitle} && {PHP.cfg.maintitle|mb_strlen} < 50 -->
{PHP.cfg.maintitle} <!-- Если задано название сайта в конфигурации и оно короче 50 символов, выводится это название. -->
<!-- ELSE -->
{PHP.L.hea_viewsite} <!-- Если нет, выводится стандартный текст "View Site". -->
<!-- ENDIF -->
</a>
</li>
</ul>
</div>
<ul id="nav" class="body clearfix">
<li>
<a href="{PHP|cot_url('admin')}" class="<!-- IF !{PHP.m} -->sel<!-- ENDIF -->" title="{PHP.L.Administration}">
<figure>
<img src="{PHP.cfg.icons_dir}/{PHP.cfg.defaulticons}/modules/index.png" alt="{PHP.L.Home}" />
</figure>
<span>{PHP.L.Home}</span>
</a>
</li>
<!-- IF {PHP.usr.admin_config} --> <!-- проверка, есть ли у пользователя доступ к настройкам конфигурации -->
<li>
<a href="{PHP|cot_url('admin', 'm=config')}" class="<!-- IF {PHP.m} == 'config' -->sel<!-- ENDIF -->" title="{PHP.L.Configuration}">
<figure>
<img src="{PHP.cfg.icons_dir}/{PHP.cfg.defaulticons}/32/core.png" alt="{PHP.L.Configuration}" />
</figure>
<span>{PHP.L.Configuration}</span>
</a>
</li>
<!-- ENDIF -->
<!-- IF {PHP.usr.admin_structure} --> <!-- проверка, есть ли у пользователя доступ к структуре -->
<li>
<a href="{PHP|cot_url('admin', 'm=structure')}" class="<!-- IF {PHP.m} == 'structure' -->sel<!-- ENDIF -->" title="{PHP.L.Structure}">
<figure>
<img src="{PHP.cfg.icons_dir}/{PHP.cfg.defaulticons}/32/folder.png" alt="{PHP.L.Structure}" />
</figure>
<span>{PHP.L.Structure}</span>
</a>
</li>
<!-- ENDIF -->
<!-- IF {PHP.usr.admin_config} --> <!-- проверка, есть ли у пользователя доступ к расширениям -->
<li>
<a href="{PHP|cot_url('admin', 'm=extensions')}" class="<!-- IF {PHP.m} == 'extensions' -->sel<!-- ENDIF -->" title="{PHP.L.Extensions}">
<figure>
<img src="{PHP.cfg.icons_dir}/{PHP.cfg.defaulticons}/32/extension.png" alt="{PHP.L.Extensions}" />
</figure>
<span>{PHP.L.Extensions}</span>
</a>
</li>
<!-- ENDIF -->
<!-- IF {PHP.usr.admin_users} --> <!-- проверка, есть ли у пользователя доступ к управлению пользователями -->
<li>
<a href="{PHP|cot_url('admin', 'm=users')}" class="<!-- IF {PHP.m} == 'users' -->sel<!-- ENDIF -->" title="{PHP.L.Users}">
<figure>
<img src="{PHP.cfg.icons_dir}/{PHP.cfg.defaulticons}/modules/users.png" alt="{PHP.L.Users}" />
</figure>
<span>{PHP.L.Users}</span>
</a>
</li>
<!-- ENDIF -->
<li>
<a href="{PHP|cot_url('admin', 'm=other')}" class="<!-- IF {PHP.m} == 'other' -->sel<!-- ENDIF -->" title="{PHP.L.Other}">
<figure>
<img src="{PHP.cfg.icons_dir}/{PHP.cfg.defaulticons}/32/wrench.png" alt="{PHP.L.Other}" />
</figure>
<span>{PHP.L.Other}</span>
</a>
</li>
</ul>
<!-- END: HEADER --> <!-- закрытие блока HEADER -->
Попробуем по подробнее
<title>{HEADER_TITLE}</title>
{HEADER_TITLE} - переменная, которая динамически задает заголовок страницы (например, "Админ панель" или название текущего раздела). Значение этой переменной обычно устанавливается на уровне PHP кода в Cotonti.
<meta name="description" content="{HEADER_META_DESCRIPTION}" />
{HEADER_META_DESCRIPTION} - переменная, которая динамически задает описание страницы, используемое для SEO. Описание выводится в мета-тег description.
<meta name="keywords" content="{HEADER_META_KEYWORDS}" />
{HEADER_META_KEYWORDS} - переменная, которая динамически задает ключевые слова страницы, используемые для SEO.
<meta name="generator" content="Cotonti https://www.cotonti.com" />
Указывает движок, который используется для создания сайта. В данном случае это Cotonti, и в теге указан URL для сайта Cotonti. Это стандартный мета-тег, который можно оставить для информативных целей.
{HEADER_BASEHREF} - это переменная, которая вставляет тег <base href="..."> в HTML, чтобы задать базовый URL для всех относительных ссылок на странице. Этот тег может быть полезен, если страницы сайта имеют специфическую структуру URL.
{HEADER_HEAD} - это дополнительное место для вставки произвольных данных в <head>, которые могут быть добавлены через шаблон. Это может быть использовано для добавления дополнительных стилей, скриптов или мета-тегов на страницы.
{HEADER_COMPOPUP} - переменная для вставки кастомного кода, связанного с всплывающими окнами или предупреждениями, которые могут отображаться на странице.
<link href="{PHP.cfg.system_dir}/admin/tpl/inc/bootstrap-reboot.min.css" type="text/css" rel="stylesheet" />
Подключение стилей Bootstrap для сброса браузерных стилей. Путь {PHP.cfg.system_dir} позволяет динамически задать правильный путь до файлов на сервере.
<link href="lib/bootstrap/css/bootstrap.min.css" type="text/css" rel="stylesheet" />
Подключение стилей основного фреймворка Bootstrap, который используется для создания адаптивного и стильного интерфейса в админке.
<link href="{PHP.cfg.system_dir}/admin/tpl/inc/admin.css" type="text/css" rel="stylesheet" />
Подключение пользовательских стилей для админки. Это файл CSS, который задает уникальный стиль для административной части сайта, с учетом специфики интерфейса и логики работы в админке.
<li>
<a href="{PHP|cot_url('users','m=profile')}">{PHP.usr.name}</a>
<!-- // {PHP|cot_url('users','m=profile')} - вызывает функцию `cot_url`, которая генерирует ссылку на страницу профиля пользователя. Аргументы указывают на страницу 'users' с параметром 'm=profile'. Это динамическая ссылка на профиль текущего пользователя. -->
<!-- // {PHP.usr.name} - выводит имя текущего пользователя. Переменная `usr.name` содержит имя, которое было установлено при регистрации пользователя в системе. -->
<!-- IF {PHP.cot_modules.pm} -->
<!-- // {PHP.cot_modules.pm} - проверяет, включен ли модуль личных сообщений (PM). Если модуль активен, то внутри блока будет отображаться ссылка на личные сообщения. -->
<span class="spaced">{PHP.cfg.separator}</span>
<!-- // {PHP.cfg.separator} - выводит символ разделителя, например, "|", для разделения элементов меню. Переменная `separator` хранит значение, заданное в конфигурации сайта. -->
<a href="{PHP|cot_url('pm')}">
<!-- // {PHP|cot_url('pm')} - генерирует ссылку на страницу личных сообщений (PM). -->
<!-- IF {PHP.usr.messages} == 0 -->
<!--// {PHP.usr.messages} - проверяет количество новых сообщений у пользователя. Если значение равно 0, значит, у пользователя нет новых сообщений. -->
{PHP.L.Private_Messages}
<!-- // {PHP.L.Private_Messages} - выводит текст на основе локализации. В данном случае это строка, которая в переводе будет "Личные сообщения". -->
<!-- ELSE --> <!-- // или, иначе, у нас началось условие, где состояние противоположное "равно 0" -->
<!-- // сообщения есть -->
{PHP.L.home_newpms}: {PHP.usr.messages}
<!-- // {PHP.L.home_newpms} - выводит текст на основе локализации, например, "Новые личные сообщения". -->
<!-- // {PHP.usr.messages} - выводит количество новых сообщений у пользователя. Если сообщений больше 0, то выводится их количество. -->
<!-- ENDIF --> <!-- // конец проверки условия {PHP.usr.messages} -->
</a>
<!-- ENDIF --> <!-- // конец проверки условия включен ли модуль личных сообщений (PM) -->
<span class="spaced">{PHP.cfg.separator}</span>
<!-- // {PHP.cfg.separator} - снова выводит символ разделителя, как в начале этого блока. -->
{PHP.out.loginout}
<!-- // {PHP.out.loginout} - выводит ссылку для выхода из системы (или входа, если пользователь не авторизован). Эта переменная генерируется сервером и выводит соответствующую ссылку в зависимости от состояния сессии пользователя. -->
</li>
Объяснение:
- Этот код формирует список с элементом, который отображает имя пользователя и несколько связанных ссылок, включая:
- Ссылку на профиль пользователя.
- Ссылку на страницу личных сообщений, если модуль сообщений включен.
- Информацию о количестве новых сообщений, если таковые имеются.
- Ссылку для выхода из системы, если пользователь авторизован.
- Используются динамически генерируемые ссылки и данные через PHP-переменные:
cot_url('users', 'm=profile')— генерирует URL для страницы профиля.PHP.usr.name— имя пользователя.PHP.usr.messages— количество новых личных сообщений.PHP.out.loginout— ссылка для выхода из системы.
- Логика внутри условных блоков (
IF ... ELSE ... ENDIF) позволяет адаптировать отображение содержимого в зависимости от состояния, например, отображение количества сообщений или обычной ссылки без количества сообщений, если их нет.
<li>
<a href="{PHP.cfg.mainurl}" title="{PHP.L.hea_viewsite}">
<!-- {PHP.cfg.mainurl} - выводит основную URL-адрес сайта, который определяется в конфигурации системы. Эта переменная используется для формирования ссылки на главную страницу. -->
<!-- {PHP.L.hea_viewsite} - выводит строку из локализации, которая содержит текст для подсказки (title) на ссылке. В данном случае это будет, например, "Просмотреть сайт". -->
<!-- IF {PHP.cfg.maintitle} && {PHP.cfg.maintitle|mb_strlen} < 50 -->
<!-- {PHP.cfg.maintitle} - проверяет, есть ли задано название сайта в конфигурации через переменную `maintitle`. Если значение пустое или не задано, будет использовано другое значение. -->
<!-- {PHP.cfg.maintitle|mb_strlen} < 50 - проверяет длину строки в переменной `maintitle`. Если длина строки меньше 50 символов, то отображается само название сайта. -->
{PHP.cfg.maintitle}
<!-- {PHP.cfg.maintitle} - если условие выше истинно (т.е. название сайта задано и его длина меньше 50 символов), то выводится название сайта, заданное в конфигурации. -->
<!-- ELSE -->
{PHP.L.hea_viewsite}
<!-- {PHP.L.hea_viewsite} - если условие не выполняется (например, если название слишком длинное или не задано), выводится локализованный текст, который может быть "Просмотреть сайт" или аналогичный. -->
<!-- ENDIF -->
</a>
</li>
Объяснение:
- Этот код формирует элемент списка (
<li>), который содержит ссылку (<a>), ведущую на главную страницу сайта. - Атрибут
hrefссылается на основной URL сайта, который хранится в переменнойPHP.cfg.mainurl. - Заголовок ссылки (
title) — это строка, которая показывается в виде подсказки при наведении курсора, и она получается из локализованной строки{PHP.L.hea_viewsite}, например, "Просмотреть сайт". - Внутри ссылки реализована логика:
- Если в конфигурации задано название сайта (
maintitle) и его длина меньше 50 символов, то в ссылке отображается это название. - Если название пустое или его длина больше 50 символов, то отображается локализованный текст, например, "Просмотреть сайт".
- Если в конфигурации задано название сайта (
- Логика в этом фрагменте позволяет адаптировать отображение текста ссылки в зависимости от конфигурации сайта, обеспечивая гибкость отображения.
<li>
<a href="{PHP|cot_url('admin')}" class="<!-- IF !{PHP.m} -->sel<!-- ENDIF -->" title="{PHP.L.Administration}">
<!-- {PHP|cot_url('admin')} - генерирует URL для страницы административной панели. В данном случае это ссылка на основную страницу админки. -->
<!-- class="<!-- IF !{PHP.m} -->sel<!-- ENDIF -->" - проверка текущего модуля через переменную {PHP.m}. Если значение переменной {PHP.m} пустое или не задано, то к классу добавляется "sel", что может указывать на активный элемент меню. -->
<!-- title="{PHP.L.Administration}" - это заголовок для ссылки, который будет отображаться при наведении. Используется локализованная строка {PHP.L.Administration}, которая будет отображать текст "Администрирование" или соответствующий перевод. -->
<figure>
<img src="{PHP.cfg.icons_dir}/{PHP.cfg.defaulticons}/modules/index.png" alt="{PHP.L.Home}" />
<!-- {PHP.cfg.icons_dir} - путь к папке с иконками, определенный в конфигурации. -->
<!-- {PHP.cfg.defaulticons} - указывает на папку с иконками по умолчанию. -->
<!-- {PHP.L.Home} - локализованная строка, которая представляет собой текст для атрибута alt изображения. Например, это может быть текст "Главная". -->
</figure>
<span>{PHP.L.Home}</span>
<!-- {PHP.L.Home} - локализованная строка, которая будет отображать текст "Главная" или соответствующий перевод. -->
</a>
</li>
Объяснение:
- Этот код создает элемент списка (
<li>), который представляет собой ссылку на страницу административной панели. - В атрибуте
hrefиспользуется функцияcot_url('admin'), которая генерирует правильный URL для страницы админки. - Атрибут
classвключает условие: если текущий модуль не совпадает с админкой (проверка через{PHP.m}), то к классу добавляетсяsel, что может быть использовано для выделения активного пункта меню. - Внутри тега
<a>также отображается изображение, соответствующее иконке "Главная" (используется путь к изображениям в конфигурации) и текст, который будет локализован в зависимости от языка, установленного на сайте. - Это меню адаптируется под текущий контекст, например, отображая активное состояние для админки, и может менять внешний вид на основе текущего модуля.
<!-- IF {PHP.usr.admin_config} -->
<!-- Проверка, доступна ли роль пользователя для конфигурации админки. Переменная {PHP.usr.admin_config} указывает, имеет ли пользователь права на доступ к настройкам конфигурации. -->
<li>
<a href="{PHP|cot_url('admin', 'm=config')}" class="<!-- IF {PHP.m} == 'config' -->sel<!-- ENDIF -->" title="{PHP.L.Configuration}">
<!-- {PHP|cot_url('admin', 'm=config')} - генерирует URL для страницы конфигурации в админке. Переменная 'm=config' указывает на модуль конфигурации. -->
<!-- class="<!-- IF {PHP.m} == 'config' -->sel<!-- ENDIF -->" - условие, проверяющее, является ли текущий модуль ('m') конфигурацией. Если это так, добавляется класс 'sel', который может выделять текущий элемент в меню как активный. -->
<!-- title="{PHP.L.Configuration}" - локализованное название "Конфигурация", которое будет отображаться при наведении на ссылку. -->
<figure>
<img src="{PHP.cfg.icons_dir}/{PHP.cfg.defaulticons}/32/core.png" alt="{PHP.L.Configuration}" />
<!-- {PHP.cfg.icons_dir} - путь к папке с иконками, указанной в конфигурации. -->
<!-- {PHP.cfg.defaulticons} - подкаталог с иконками по умолчанию. -->
<!-- {PHP.L.Configuration} - локализованное название для текста в атрибуте alt изображения, которое будет отображать описание "Конфигурация". -->
</figure>
<span>{PHP.L.Configuration}</span>
<!-- {PHP.L.Configuration} - локализованная строка для текста "Конфигурация" или ее перевод. -->
</a>
</li>
<!-- ENDIF -->
Объяснение:
- Этот код создает элемент списка (
<li>) с ссылкой на страницу конфигурации админки. - Вначале выполняется проверка, имеет ли текущий пользователь доступ к настройкам конфигурации с помощью переменной
{PHP.usr.admin_config}. - Если доступ имеется, то создается ссылка на страницу конфигурации с помощью функции
cot_url('admin', 'm=config'), которая генерирует правильный URL. - Атрибут
classсодержит условие: если текущий модуль равен 'config' (то есть открыта страница конфигурации), то добавляется класс 'sel', что может использоваться для выделения текущего пункта меню как активного. - Внутри ссылки отображается иконка, связанная с конфигурацией, а также локализованный текст, который будет отображаться на сайте.
<!-- IF {PHP.usr.admin_structure} -->
<!-- Проверка, доступна ли роль пользователя для управления структурой сайта. Переменная {PHP.usr.admin_structure} указывает, имеет ли пользователь права на доступ к разделу структуры сайта в админке. -->
<li>
<a href="{PHP|cot_url('admin', 'm=structure')}" class="<!-- IF {PHP.m} == 'structure' -->sel<!-- ENDIF -->" title="{PHP.L.Structure}">
<!-- {PHP|cot_url('admin', 'm=structure')} - генерирует URL для страницы структуры админки. Переменная 'm=structure' указывает на модуль структуры. -->
<!-- class="<!-- IF {PHP.m} == 'structure' -->sel<!-- ENDIF -->" - условие, проверяющее, является ли текущий модуль ('m') структурой. Если это так, добавляется класс 'sel', который может выделять текущий элемент в меню как активный. -->
<!-- title="{PHP.L.Structure}" - локализованное название "Структура", которое будет отображаться при наведении на ссылку. -->
<figure>
<img src="{PHP.cfg.icons_dir}/{PHP.cfg.defaulticons}/32/folder.png" alt="{PHP.L.Structure}" />
<!-- {PHP.cfg.icons_dir} - путь к папке с иконками, указанной в конфигурации. -->
<!-- {PHP.cfg.defaulticons} - подкаталог с иконками по умолчанию. -->
<!-- {PHP.L.Structure} - локализованное название для текста в атрибуте alt изображения, которое будет отображать описание "Структура". -->
</figure>
<span>{PHP.L.Structure}</span>
<!-- {PHP.L.Structure} - локализованная строка для текста "Структура" или ее перевод. -->
</a>
</li>
<!-- ENDIF -->
Объяснение:
- Этот код создает элемент списка (
<li>) с ссылкой на страницу структуры сайта в админке. - Вначале выполняется проверка, имеет ли текущий пользователь доступ к управлению структурой сайта с помощью переменной
{PHP.usr.admin_structure}. - Если доступ имеется, то создается ссылка на страницу структуры с помощью функции
cot_url('admin', 'm=structure'), которая генерирует правильный URL. - Атрибут
classсодержит условие: если текущий модуль равен 'structure' (то есть открыта страница структуры), то добавляется класс 'sel', что может использоваться для выделения текущего пункта меню как активного. - Внутри ссылки отображается иконка, связанная с управлением структурой, а также локализованный текст "Структура", который будет отображаться на сайте.
<!-- IF {PHP.usr.admin_config} -->
<!-- Проверка, доступен ли модуль конфигурации для текущего пользователя. Переменная {PHP.usr.admin_config} указывает, имеет ли пользователь права на доступ к разделу конфигурации в админке. -->
<li>
<a href="{PHP|cot_url('admin', 'm=extensions')}" class="<!-- IF {PHP.m} == 'extensions' -->sel<!-- ENDIF -->" title="{PHP.L.Extensions}">
<!-- {PHP|cot_url('admin', 'm=extensions')} - генерирует URL для страницы расширений админки. Переменная 'm=extensions' указывает на модуль расширений. -->
<!-- class="<!-- IF {PHP.m} == 'extensions' -->sel<!-- ENDIF -->" - условие, проверяющее, является ли текущий модуль ('m') расширениями. Если это так, добавляется класс 'sel', который выделяет текущий пункт меню как активный. -->
<!-- title="{PHP.L.Extensions}" - локализованное название "Расширения", которое будет отображаться при наведении на ссылку. -->
<figure>
<img src="{PHP.cfg.icons_dir}/{PHP.cfg.defaulticons}/32/extension.png" alt="{PHP.L.Extensions}" />
<!-- {PHP.cfg.icons_dir} - путь к папке с иконками, указанной в конфигурации. -->
<!-- {PHP.cfg.defaulticons} - подкаталог с иконками по умолчанию. -->
<!-- {PHP.L.Extensions} - локализованное название для текста в атрибуте alt изображения, которое будет отображать описание "Расширения". -->
</figure>
<span>{PHP.L.Extensions}</span>
<!-- {PHP.L.Extensions} - локализованная строка для текста "Расширения" или ее перевод. -->
</a>
</li>
<!-- ENDIF -->
Объяснение:
- Этот код создает элемент списка (
<li>) с ссылкой на страницу расширений в админке. - Вначале выполняется проверка, имеет ли текущий пользователь доступ к настройкам расширений с помощью переменной
{PHP.usr.admin_config}. - Если доступ имеется, то создается ссылка на страницу расширений с помощью функции
cot_url('admin', 'm=extensions'), которая генерирует правильный URL. - Атрибут
classсодержит условие: если текущий модуль равен 'extensions' (то есть открыта страница расширений), то добавляется класс 'sel', что выделяет пункт меню как активный. - Внутри ссылки отображается иконка, связанная с расширениями, а также локализованный текст "Расширения", который будет отображаться на сайте.
<!-- IF {PHP.usr.admin_users} -->
<!-- Проверка, доступен ли модуль управления пользователями для текущего пользователя. Переменная {PHP.usr.admin_users} указывает, имеет ли пользователь права на доступ к разделу управления пользователями в админке. -->
<li>
<a href="{PHP|cot_url('admin', 'm=users')}" class="<!-- IF {PHP.m} == 'users' -->sel<!-- ENDIF -->" title="{PHP.L.Users}">
<!-- {PHP|cot_url('admin', 'm=users')} - генерирует URL для страницы управления пользователями админки. Переменная 'm=users' указывает на модуль пользователей. -->
<!-- class="<!-- IF {PHP.m} == 'users' -->sel<!-- ENDIF -->" - условие, проверяющее, является ли текущий модуль ('m') пользователями. Если это так, добавляется класс 'sel', который выделяет текущий пункт меню как активный. -->
<!-- title="{PHP.L.Users}" - локализованное название "Пользователи", которое будет отображаться при наведении на ссылку. -->
<figure>
<img src="{PHP.cfg.icons_dir}/{PHP.cfg.defaulticons}/modules/users.png" alt="{PHP.L.Users}" />
<!-- {PHP.cfg.icons_dir} - путь к папке с иконками, указанной в конфигурации. -->
<!-- {PHP.cfg.defaulticons} - подкаталог с иконками по умолчанию. -->
<!-- {PHP.L.Users} - локализованное название для текста в атрибуте alt изображения, которое будет отображать описание "Пользователи". -->
</figure>
<span>{PHP.L.Users}</span>
<!-- {PHP.L.Users} - локализованная строка для текста "Пользователи" или ее перевод. -->
</a>
</li>
<!-- ENDIF -->
Объяснение:
- Этот код создает элемент списка (
<li>) с ссылкой на страницу управления пользователями в админке. - Вначале выполняется проверка, имеет ли текущий пользователь доступ к разделу управления пользователями с помощью переменной
{PHP.usr.admin_users}. - Если доступ имеется, то создается ссылка на страницу пользователей с помощью функции
cot_url('admin', 'm=users'), которая генерирует правильный URL. - Атрибут
classсодержит условие: если текущий модуль равен 'users' (то есть открыта страница пользователей), то добавляется класс 'sel', что выделяет пункт меню как активный. - Внутри ссылки отображается иконка, связанная с пользователями, а также локализованный текст "Пользователи", который будет отображаться на сайте.
<li>
<a href="{PHP|cot_url('admin', 'm=other')}" class="<!-- IF {PHP.m} == 'other' -->sel<!-- ENDIF -->" title="{PHP.L.Other}">
<!-- {PHP|cot_url('admin', 'm=other')} - генерирует URL для страницы с настройками, не относящимися к основным разделам. Переменная 'm=other' указывает на модуль "другие" настройки. -->
<!-- class="<!-- IF {PHP.m} == 'other' -->sel<!-- ENDIF -->" - условие, проверяющее, является ли текущий модуль ('m') значением 'other'. Если это так, добавляется класс 'sel', чтобы выделить текущий пункт меню как активный. -->
<!-- title="{PHP.L.Other}" - локализованное название "Другие" для отображения при наведении на ссылку. -->
<figure>
<img src="{PHP.cfg.icons_dir}/{PHP.cfg.defaulticons}/32/wrench.png" alt="{PHP.L.Other}" />
<!-- {PHP.cfg.icons_dir} - путь к папке с иконками, указанной в конфигурации. -->
<!-- {PHP.cfg.defaulticons} - подкаталог с иконками по умолчанию. -->
<!-- {PHP.L.Other} - локализованное название для текста в атрибуте alt изображения, которое будет отображать описание "Другие". -->
</figure>
<span>{PHP.L.Other}</span>
<!-- {PHP.L.Other} - локализованная строка для текста "Другие" или ее перевод. -->
</a>
</li>
Объяснение:
- Этот код создает элемент списка (
<li>) с ссылкой на страницу, относящуюся к другим настройкам админки. - Внутри ссылки присутствует проверка, если текущий модуль равен
'other', то добавляется класс'sel', который делает пункт меню активным. - Внутри ссылки отображается иконка, связанная с "другими" настройками, а также локализованный текст "Другие", который будет отображаться на сайте.
- Ссылка ведет на модуль 'other', который может содержать различные дополнительные настройки или разделы в админке.
Теги <!-- BEGIN: HEADER --> и <!-- END: HEADER --> действительно имеют смысл в контексте шаблонной системы Cotonti CMF и XTemplate. Они используются для обозначения начала и конца блока, который движок будет обрабатывать с помощью метода $t->parse('HEADER').
Объяснение:
-
<!-- BEGIN: HEADER -->и<!-- END: HEADER -->: Эти теги сообщают движку, что код между ними относится к блоку под названием "HEADER". Когда шаблон обрабатывается, метод$t->parse('HEADER')будет искать эти теги и обрабатывать содержимое, заключенное между ними. -
Метод
$t->parse('HEADER'): Этот метод используется для обработки блока с именем "HEADER". Он может встраивать переменные, проверять условия и выводить необходимые данные в том месте, где этот блок был вызван в шаблоне.
Таким образом, эти теги играют важную роль в структуре шаблонов Cotonti, обеспечивая правильную обработку и вывод данных в соответствующих разделах сайта.
Комментарии (0)
Автор контента
Оффлайн
Administrator
Последняя авторизация: 05.07.2026 18:32
- Страница размещена: 28.01.2025 22:48
- Последнее обновление: 28.01.2025 23:43