Next Generation CMS - Управляйте контентом без границ!
Создавай
Развивай
Управляй
Актуальная v.0.9.7
Плагин XMenu

Плагин XMenu

Плагин 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!
22 апреля 2025 / Плагины, Шаблон

Добавить комментарий

  • captcha

up