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, обеспечивая правильную обработку и вывод данных в соответствующих разделах сайта.

 

 

19 минут чтения Administrator

Комментарии (0)

Комментарии отсутствуют
Добавление комментариев доступно только зарегистрированным пользователям

Автор контента

Administrator

Оффлайн

Administrator

Последняя авторизация: 05.07.2026 18:32

  • Страница размещена: 28.01.2025 22:48
  • Последнее обновление: 28.01.2025 23:43

Похожие страницы

HTML-шаблон admin.users.tpl в Cotonti
1 Файл admin.users.tpl в Cotonti CMF представляет собой HTML-шаблон, используемый для отображения интерфейса управления
HTML-шаблон admin.structure.tpl в Cotonti
2 Файл admin.structure.tpl в движке Cotonti CMF является HTML-шаблоном для отображения структуры сайта в административной
HTML-шаблон warnings.tpl в Cotonti
3 Шаблон warnings.tpl в контексте движка Cotonti CMF выполняет функцию вывода различных типов системных сообщений
HTML-шаблон message.tpl в Cotonti
4 Описание шаблона "message.tpl" в контексте Cotonti CMF Основное назначение файла: Шаблон message.tpl
HTML-шаблон footer.tpl в Cotonti
5 Анализ шаблона подвала сайта в админке Cotonti CMF ("footer.tpl"): Основное назначение шаблона