Плагин XMenu для NG-CMS (TWIG only) с поддержкой статических страниц ОписаниеПлагин XMenu предоставляет расширенные возможности создания и управления меню на сайте через TWIG-шаблоны, включая поддержку как категорий новостей, так и статических страниц.
Основные возможности- Поддержка 9 независимых меню
- Гибкая настройка отображения категорий и статических страниц
- Возможность кеширования для ускорения работы
- Поддержка разных шаблонов для каждого меню
- Показ количества новостей в категориях (опционально)
- Интеграция со статическими страницами NG-CMS
Установка1. Загрузите папку плагина в `/engine/plugins/`
2. Активируйте плагин в админ-панели:
**Настройки → Плагины → XMenu → Активировать**
3. Настройте привязку категорий и статических страниц к меню:
**Настройки → XMenu → Конфигурация**
Настройка плагинаПосле установки перейдите в **Настройки → XMenu**:
Основные настройки:- Привязка категорий и статических страниц к меню:
- `#` — элемент отображается в меню
- `_` — элемент скрыт
### Дополнительные настройки:
| Настройка | Описание | Значения |
|---------- --------------------------------------------|----------------------------------------------------------|----------------------------------------------------|
| **Источник шаблонов** | Откуда загружать TWIG-шаблоны | `0` – Шаблон сайта
`1` – Плагин |
| **Кеширование** | Ускорение загрузки меню | `1` – Включено
`0` – Выключено |
| **Время жизни кеша** | Через сколько секунд обновлять кеш | По умолчанию `3600` (1 час) |
| **Показывать статические страницы** | Включить статические страницы в меню | `1` – Да
`0` – Нет |
Вывод меню в шаблонеИспользуйте TWIG-функцию `callPlugin()`:
Код:
{{ callPlugin('xmenu.show', {
menu_id: 1, // ID меню (1-9)
template: 'custom_menu', // Имя шаблона (необязательно)
show_news: 1, // Показывать кол-во новостей (1/0)
show_static: 1, // Показывать статические страницы (1/0)
debug: 0 // Режим отладки (1/0)
}) }}
Параметры вызова:| Параметр | Обязательный? | Значение по умолчанию | Описание |
|-------------------|-----------------------|------------------------------------|------------------------------------------------------------------------|
| `menu_id` | Да | — | Номер меню (1-9) |
| `template` | Нет | `xmenu` | Имя TWIG-шаблона |
| `show_news` | Нет | `1` | Показывать кол-во новостей (1 – да, 0 – нет) |
| `show_static` | Нет | `1` | Показывать статические страницы (1 – да, 0 – нет) |
| `debug` | Нет | `0` | Логирование ошибок (1 – включить) |
ШаблоныПлагин ищет шаблоны в двух местах (в порядке приоритета):
1. Шаблон сайта: `/templates/ВАШ_ШАБЛОН/plugins/xmenu/`
2. Плагин: `/engine/plugins/xmenu/tpl/`
Доступные шаблоны:- `xmenu.tpl` – стандартный шаблон (используется по умолчанию)
- Можно создавать свои шаблоны, например: `custom_menu.tpl`
Переменные в TWIG-шаблонеВнутри шаблона доступны:
| Переменная | Тип | Описание |
|-----------------------------|---------|--------------------------------------------------------------------------------------|
| `items` | array | Массив элементов меню |
| `items[].type` | string | Тип элемента (`category` или `static`) |
| `items[].id` | int | ID элемента |
| `items[].name` | string | Название элемента |
| `items[].url` | string | Ссылка на элемент |
| `items[].active` | bool | Активен ли элемент (true/false) |
| `items[].news_count` | int | Количество новостей в категории (только для type=category) |
| `items[].alt_name` | string | Альтернативное имя (только для type=static) |
| `menu_id` | int | ID текущего меню |
| `show_news` | bool | Показывать ли кол-во новостей |
| `show_static` | bool | Показывать ли статические страницы |
| `tpl_url` | string | Путь к папке с шаблонами |
Пример TWIG-шаблона (xmenu.tpl)Код:
<ul class="xmenu menu-{{ menu_id }}">
{% for item in items %}
<li class="{{ item.type }} {{ item.active ? 'active' : '' }}">
<a href="{{ item.url }}" title="{{ item.name }}">
{{ item.name }}
{% if item.type == 'category' and show_news and item.news_count > 0 %}
<span class="news-count">({{ item.news_count }})</span>
{% endif %}
</a>
</li>
{% endfor %}
</ul>
<style>
.xmenu .static { color: #4a6ea9; }
.xmenu .category { color: #333; }
.xmenu .active { font-weight: bold; }
.news-count { font-size: 0.8em; color: #666; }
</style>
Особенности работы со статическими страницами
1. Ссылки генерируются в том же формате, что и в административной панели NG-CMS
2. Поддерживаются все параметры статических страниц (altname и id)
3. Автоматически определяется правильный формат URL в зависимости от конфигурации маршрутизации
ИтогПлагин XMenu предоставляет:
- Полноценную поддержку как категорий, так и статических страниц
- Гибкие настройки через админку
- Поддержку кеширования для повышения производительности
- Возможность создания произвольных шаблонов под любой дизайн
- Полный контроль над меню через TWIG
Идеальное решение для современных сайтов на NG-CMS!