- Описание
- Установка
- Настройка веб сервера
- Данные и шаблоны
- Оптимизация JS и CSS файлов
- Вывод контента
- Корзина товаров
- Настройка онлайн оплаты
- Настройка оплаты через Robokassa
- Меню
- Формы
- Поиск
- Учет количества товара на складе
- Мульти-валютность
- Мульти-язычность
- Изменение размеров изображений
- Разработчикам
- Импорт-Экспорт
- Установка на локальный сервер XAMPP в Windows
- Настройка VDS и установка Nginx, PHP, MongoDB, Shopker
- JavaScript API
- Визуальный редактор шаблонов
- Бронирование
- Экспорт каталога в Яндекс.Маркет
- Bash скрипт для настройки VDS
- Bash скрипт для установки
- API
- Установка локально в ОС Windows
Меню
Выпадающее меню
Выпадающее меню выводится в шаблоне при помощи функции categoriesTree()
.
Пример:
{{ categoriesTree(0, 'menu_dropdown', null, activeCategoriesIds, true, 'current') }}
Аргументы (по порядку):
- ID родительской категории.
- Название шаблона для вывода (берется из папки
templates/nav/
). - Данные меню. Если
null
(по умолчанию), то данные будут получены из базы данных. - Массив активных страниц и категорий (вверх по вложенности).
- Включить кэширование HTML кода. По умолчанию выключено.
- Имя класса активного элемента меню (см. подробнее ниже). По умолчанию -
active
.
В шаблоне доступны все поля категории в массиве children
, а также:
currentUri
- текущий URI страницы.uriArr
- массив URI до текущей страницы.
Кэширование меню
Если включено кэширование, то весь HTML код меню будет сохранен в файле. Очистить кэш можно в административной части сайта в разделе "Настройки" - кнопка "Очистить кэш" -> "Очистить файловый кэш".
Для того, чтобы иметь возможность отмечать текущий пункт меню при выводе из кэша, можно использовать метки в коде вашего шаблона меню.
Пример:
<a href="{{ catalogPath(category.uri) }}" class="nav-link active{{ category.id }}-">
{{ category.title }}
</a>
Метка active{{ category.id }}-
будет автоматически заменена на имя класса активного элемента меню, заданного в вызове функции.
Полный пример шаблона меню с рекурсивным выводом категорий (templates/default/nav/menu_dropdown.html.twig
):
<ul class="menu-dropdown navbar-nav mr-auto">
{% for category in children %}
<li class="nav-item{% if category.children|length > 0 %} parent{% endif %}">
<a href="{{ catalogPath(category.uri) }}" class="nav-link active{{ category.id }}-">
{{ category.title }}
</a>
{{ categoriesTree(category.id, 'menu_dropdown_child', category, activeCategoriesIds) }}
</li>
{% endfor %}
</ul>