qwelp.megamenu · Руководство по подключению
Документация
Мега-меню: полное руководство по установке, настройке и использованию. Версия 1.0.0.
Начало
Страницы «Меню сайта» и «Ручное наполнение», формы создания и редактирования ручного меню, история версий, права доступа, перенос и настройки, боковые редакторы баннеров и брендов оформлены в едином стиле Qwelp. Поиск и действия в списке ручных меню сохраняют штатную работу Битрикс. Источник, общие изображения и пункты меню расположены в отдельных панелях; в узком окне таблица прокручивается внутри панели. Настройки разделены на вкладки источника и внешнего вида. В узкой рабочей области подписи переходят над полями. Источник меню и внешний вид сохраняются отдельными кнопками.
Модуль выводит многоуровневое меню с изображениями, баннером и ссылками на бренды. Структуру можно заполнить вручную или получить из торгового каталога.
- Откройте настройки, выберите сайт и источник. Для ручного меню сначала создайте и опубликуйте вариант в ручном наполнении; для каталога выберите доступный инфоблок.
- Включите меню и выберите вид: иконки, подробный, текстовый или подборки. В разделе «Меню сайта» добавьте изображения.
- На вкладке «Подключение» скопируйте пример в шаблон сайта и проверьте кнопку каталога.
Установка сама не добавляет кнопку и не изменяет страницы сайта. Для подключения понадобится доступ к шаблону и базовое знание PHP.
Подключение
Вставьте пример в PHP-файл своего шаблона сайта в том месте, где должна находиться кнопка «Каталог», после подключения заголовка Битрикс. На обычной странице это место между bitrix/header.php и bitrix/footer.php. В редакторе компонента доступны те же параметры.
<button type="button" data-qmm-menu-trigger aria-controls="catalog-megamenu" aria-expanded="false">Каталог</button>
<?php
$APPLICATION->IncludeComponent('qwelp:megamenu.menu', '.default', [
'SITE_ID' => '',
'VIEW_TYPE' => 'site',
'MAX_DEPTH' => 3,
'SHOW_IMAGES' => 'Y',
'SHOW_DESCRIPTIONS' => 'Y',
'EDIT_MODE' => 'Y',
'HTML_ID' => 'catalog-megamenu',
'CACHE_TYPE' => 'A',
'CACHE_TIME' => 3600,
'CACHE_GROUPS' => 'N',
]);
?>Оставьте SITE_ID пустым: модуль выберет текущий сайт. Значение VIEW_TYPE = site использует вид из настроек. Кнопка открывает меню, Escape закрывает его и возвращает фокус.
Несколько меню на одной странице
Для каждого экземпляра задайте своё значение HTML_ID и такое же aria-controls у соответствующей кнопки. Не повторяйте идентификаторы. Для независимого внешнего вида задайте VIEW_TYPE: icons, detailed, text или collections.
Кеширование и многосайтовость
Используйте CACHE_TYPE = A. Компонент разделяет данные сайтов и административный режим, обновляет кеш после публикации и изменения оформления. Подключайте компонент отдельно в шаблоне каждого сайта; общая папка /local/ не требуется. Все штатные ресурсы поставляются самим модулем.
Публичное меню использует права гостя даже при просмотре администратором. Закрытые разделы каталога, изображения товаров и бренды исключаются из общего кеша.
Оформление
В настройках выберите один из четырёх видов. В меню сайта общие баннер и бренды действуют для пунктов без собственных изображений.
- Откройте «Баннер и бренды» у нужного пункта.
- Для каждого канала выберите наследование, собственные изображения или «Не показывать».
- Чтобы передать настройку ниже, включите её применение к подразделам. Сохраните форму и откройте меню на сайте.
Баннер и бренды наследуются независимо. В список брендов можно добавлять строки, менять порядок, подписи, ссылки и изображения для тёмного оформления. Лимиты одного сохранения зависят от PHP: большой список сохраняйте частями.
Собственное оформление
Скопируйте шаблон icons, detailed, text или collections штатным редактором Битрикс под новым именем в /local/templates/ВАШ_ШАБЛОН/components/qwelp/megamenu.menu/ВАШ_ВИД/. Укажите это имя вторым аргументом IncludeComponent, а соответствующий вид — в VIEW_TYPE. Изменяйте CSS в своей копии; сохраните HTML-идентификаторы, атрибуты управления, вызовы ресурсов и поддержку Композита. Обновление модуля не перезаписывает пользовательскую копию.
Для тёмного оформления задайте data-qmm-theme="dark" элементу html. Цвета меняются собственными переменными --qmm-* в CSS сайта.
Кнопка «К меню сайта» в редакторе баннера и брендов закрывает боковое окно и возвращает к исходной странице. Если редактор открыт отдельной страницей, кнопка открывает меню выбранного сайта.
Проверка
- Откройте страницу как посетитель. Проверьте кнопку, вложенные пункты, ссылки, картинки и закрытие по Escape.
- Проверьте узкое окно и прокрутку длинного меню. Откройте страницу повторно с кешем и Композитом.
- Измените пункт, опубликуйте черновик и убедитесь, что посетитель видит новую версию.
- На втором сайте задайте другое меню и проверьте, что настройки первого не изменились.
Меню не открывается или пустое
Проверьте включение меню, сайт, выбранное дерево и его публикацию, привязку каталога и права. Значение «Без всплывающего меню» отключает вывод. Проверьте совпадение HTML_ID и aria-controls, наличие штатного вывода ресурсов в заголовке и отсутствие ошибок JavaScript. После изменения собственной копии шаблона очистите её кеш штатными средствами Битрикс.
Недоступно сохранение или загрузка
Проверьте права модуля и разрешение нужного действия для сайта. При истёкшей сессии обновите форму. Загружайте изображения поддерживаемого формата и размера; сообщение формы укажет отклонённый файл. Не меняйте URL сайта или идентификаторы вручную для обхода прав.
Справка
Откройте «Перенести меню из инфоблока» в настройках. Если ручного меню ещё нет, введите название и создайте его прямо на странице переноса. Пункты вручную добавлять не нужно. Выберите источник и меню, нажмите «Проверить перенос», затем «Перенести в черновик» в результате проверки. Откроется редактор с перенесённой структурой. Режим с изображениями копирует изображения разделов, баннеры и логотипы брендов в локальные файлы модуля; штатное облачное хранилище Битрикс не мешает переносу локальных исходников. «Только структура» не копирует изображения. Повтор того же режима не создаёт дубль; после переноса структуры можно отдельно импортировать изображения. Проверьте черновик и нажмите «Сохранить и опубликовать». Затем в настройках выберите ручной источник и это меню, включите показ и сохраните источник. Перенос сам не переключает меню сайта. Редактор показывает последнюю публикацию, если после неё не сохранён более новый черновик.
Требования: PHP 8.2 и Bitrix main 25.900.0 или новее. Ручной источник не требует торгового каталога; автоматический использует штатные модули iblock и catalog. Импорт использует iblock. Внешних платных сервисов и встроенных покупок нет.
| Параметр | Значение |
|---|---|
| SITE_ID | Пусто — текущий сайт; вывод чужого сайта запрещён. |
| VIEW_TYPE | site, icons, detailed, text, collections; none скрывает меню. |
| MAX_DEPTH | Глубина от 1 до 6. |
| SHOW_IMAGES / SHOW_DESCRIPTIONS | Y или N: изображения и описания. |
| EDIT_MODE | Y разрешает ссылки редактора только при включённом режиме правки и достаточных правах. |
| HTML_ID | Уникальный идентификатор, равный aria-controls кнопки. |
| ARIA_LABEL | Доступное название; пусто — стандартное локализованное. |
| CACHE_TYPE / CACHE_TIME | A — автоматически, Y — включён, N — выключен; срок в секундах. |
| CACHE_GROUPS | Y включает группы пользователя в ключ кеша; N отключает. Режим администратора изолирован отдельно. |
Права, импорт и удаление
Общие права D/R/W и действия по сайтам настраиваются в стандартных настройках модуля. Дерево сохраняется в черновик и публикуется отдельно; изображения сохраняются сразу. Импорт сначала показывает предварительную проверку и требует подтверждения, сохраняя источник. Удаление по умолчанию сохраняет данные; полное удаление требует отдельного подтверждения. До обновления или удаления сделайте резервную копию. Общий модуль обслуживает все сайты установки.
Поля существующего каталога: для разработчика
По умолчанию модуль читает только собственные поля. Для подключения пользовательских UF зарегистрируйте экземпляр Qwelp\Megamenu\Configuration\CatalogFieldMap в ServiceLocator до получения сервисов модуля. Конструктор принимает соответствия image, hidden, link, fallbackImage, visible, fallbackLink, background, bannerImage, bannerLink, fallbackBannerLink, brands именам UF-полей. Соответствия входят в ключ кеша. Такой адаптер хранится в проекте клиента.
Сверено с документацией модуля 11.10.2026. Примеры PHP предназначены для вашего сайта на 1С-Битрикс.