Из чего состоит меню Битрикс, на какие типы делится и как формируется? На эти вопросы не так просто ответить не только новичку, но и опытному специалисту. При формировании и внедрении меню, а также редактировании его пунктов нужно быть особенно внимательным.
Любое меню на сайте формируется на базе двух элементов:
Массив $aMenuLinks содержит ряд отдельных файлов, в каждом из которых находятся данные для каждого типа меню. Имя каждого файла имеет формат <тип меню>.menu.php. К примеру, хранение данных типа left предполагает использование файла .left.menu.php, а хранение информации типа top – файл .top .menu.php.
Меню в Битрикс называют иерархически наследуемым. Связано это с тем, что файлы меню помещаются в папках тех разделов веб-ресурса, где необходим показ соответствующих типов меню. Если для раздела не сформирован соответствующий файл меню, система выполняет поиск сайта в каталоге уровнем выше.
Приведем пример. Основное меню выводится во всех разделах. Следовательно, файл этого меню помещается только в корневой каталог веб-ресурса. Меню же второго уровня отображается отдельно для каждого раздела сайта. В связи с этим в папке каждого раздела формируется свой файл для данного типа меню.
Еще один пример. Пользователь посетил раздел /ru/company/about/ . Чтобы показывалось меню типа left, система выполняет поиск файла меню в следующей последовательности:
1. /ru/company/about/.left.menu.php
2. /ru/company/.left.menu.php
3. /ru/.left.menu.php
4. /.left.menu.php
Если в каком-то каталоге найдено меню, процедура поиска завершается и в последующих каталогах уже не выполняется.
Типом меню называют принцип формирования меню. Изначально дистрибутив содержит два типа: левое и верхнее. В зависимости от задач сайта может использоваться нижнее расположение. В каждом компоненте меню применяются два типа: первое – основное, а второе в качестве дополнительного при условии использования шаблонов многоуровневого типа.
Типы меню
В общем случае на сайте есть одно «главное» меню, которое соответствует верхней ступени иерархии. Отображается оно во всех разделах сайта. Также в системе используется меню второго уровня. Оно включает ссылки на подразделы и документы настоящего раздела.
Меню многоуровневое и наследуемое. Так, если для одного компонента Меню в шаблоне имеется конкретный тип меню, то оно же будет транслироваться ниже на все страницы и разделы сайта вместе с шаблоном. При этом должно соблюдаться условие, что в этих разделах и страницах не было сформированного собственного меню. Такой механизм удобен для основного меню сайта. Обычно ему присваивается тип «Верхнее».
Если вам нужно, чтобы в находящемся ниже разделе не отображалось вышестоящее меню, сформируйте меню в необходимом разделе без формирования в нем пунктов меню.
Каждому разделу присваивается свое меню. Транслируется оно на все страницы раздела. При необходимости в подразделах вы можете создавать собственное меню и применять к нему свой тип.
Виды используемых на веб-ресурсе меню задаются из административного раздела на странице настроек модуля Управление структурой. Допустим, в системе применяются два типа меню:
Настройка типов меню
Тип меню, указанный в настройках модуля Управление структурой, выступит в качестве префикса файла меню, а также для идентификации файлом с пунктами меню (к примеру, .top.menu.php). Помимо этого, имя типа меню применяется для подключения меню в шаблоне дизайна.
В 1С-Bitrix все данные делятся на два типа: статические и динамические. Статическая информация редко меняется с течением времени. Создается и редактируется вручную. Статические данные вводятся непосредственно на странице сайта, а потому меняются редко и вручную.
Динамическая информация хранится в базе данных сайта и выводится специальными компонентами системы. Размещается она с помощью программного кода и редактируется автоматически в зависимости от изменений в источнике данных – информационном блоке. Помимо этого, представленные два типа информации отличаются вариантами хранения, обработки и вывода. Оба вида информации могут быть размещены на одной физической странице. Допускается создание смешанного меню, которое будет содержать как статические, так и динамические пункты.
Какое меню создавать? Тут все зависит от ваших целей и того, что именно вы хотите в нем видеть. Создайте статическое меню, если вам нужен блок, из которого можно переходить в разделы или на страницы сайта. Добавьте названия разделов и страниц, пропишите ссылки на соответствующие папки и файлы из физической структуры сайта. Именно простота является основным преимуществом статического меню.
Статическое меню
Недостаток такого меню – необходимость вручную добавлять новые пункты и ссылки на него. Если же меню горизонтальное, то добавляемый пункт может попросту не поместиться на страницу. В этом случае переделывать придется всю верстку.
Используйте динамический блок с пунктами, если вам нужно выпадающее меню, которое будет меняться автоматически при добавлении или изменении информации в каталоге. Клик по пункту будет переводить пользователя на раздел или элемент каталога.
Если раздел содержит несколько элементов, вам не придется создавать для каждого из них физическую страницу и сохранять их в виде файлов. Страница будет сформирована в момент обращения при помощи специального программного кода. Она будет содержать актуальные сведения, а вам не придется следить за этим. Не нужно будет и вносить изменения в публичной части.
Динамическое меню
На примере выше динамическое меню. Для него не требуется создание отдельных пунктов и страниц для отдельных товаров, когда ассортимент пополнится новыми товарами.
Возможен даже вариант совмещения в одном меню разных типов информации. Например, это список услуг вашей компании и контактные сведения. Контакты меняются редко, а услуги с товарами регулярно. В этом случае нужно настроить компонент меню на отображение инфоблока услуг и добавить к нему статические пункты.
Независимо от того, какой тип меню — статический или динамический, — вы выбрали, корректная его работа во многом зависит от скорости сайта. Чтобы не потерять посетителей и конверсии, убедитесь, что сайт работает достаточно быстро. О том, как это сделать, мы писали в статье «Оптимизация сайта на “Битрикс”».
Отметим еще раз: статические данные в структуре сайта – это папки (они же разделы) и файлы (страницы). Динамическая же информация – это инфоблоки (инструменты, с помощью которых в Базу данных заносится информация).
Следовательно, статическое меню:
Динамическое меню:
Что нужно для создания статического меню с последующим внедрением его в шаблон сайта? Алгоритм работы следующий:
По итогу мы получим статическое меню в разделе «Саженцы».
Создать меню динамического типа можно несколькими способами. Первый вариант самый легкий: нужно добавить к каталогу демо-версии сайта собственные разделы и подразделы. Они автоматически попадут в главное меню.
Второй вариант – настройка меню на свой инфоблок. Алгоритм следующий:
Наконец, третий способ. Он предполагает внесение изменений в код. Для этого:
// пример файла .left.menu_ext.php if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); global $APPLICATION; $aMenuLinksExt = $APPLICATION->IncludeComponent( "bitrix:menu.sections", "", Array( "ID" => $_REQUEST["ELEMENT_ID"], "IBLOCK_TYPE" => "books", "IBLOCK_ID" => "30", "SECTION_URL" => "/e-store/books/index.php?SECTION_ID=#ID#", "CACHE_TIME" => "3600" ) ); $aMenuLinks = array_merge($aMenuLinks, $aMenuLinksExt);
После этого динамическое меню автоматически отобразится в разделе.
Построение меню для показа проходит в три этапа:
Создание и редактирование пунктов меню происходит в публичной части сайта. Выглядит это следующим образом:
Создание и редактирование пунктов меню
Изменения будут видны сразу после нажатия кнопки «сохранить». При этом отредактировать пункты можно как в публичной, так и в административной части веб-ресурса.
Переходим в редактор, что находится в разделе «правки». Наводим курсором на нужное меню и жмем кнопку «редактировать пункты меню».
Редактирование пунктов меню через публичный раздел сайта
Затем всплывет окно, где вы можете поменять существующие пункты, либо включить новые.
Всплывающее окно для редактирования меню
Здесь же вы можете открыть окно с редактированием меню в административном разделе.
Обозначьте раздел в структуре сайта, меню которого вы собираетесь изменить. Выберете нужный тип меню. Вот пример главного меню, находящегося в корне сайта и имеющего тип main:
Управление меню в административном разделе Битрикс
Нажмите кнопку «редактировать меню». У вас откроется соответствующая форма:
Редактирование меню в Bitrix
Доступна эта форма в двух режимах: упрощенном и расширенном. Первый вариант предполагает «легкую» форму работы: мы редактируем, удаляя или изменяя название и назначение ссылки. Дополнительно можно формировать новые пункты и менять их сортировку.
В расширенном режиме, через форму редактирования меню можно прописать дополнительные данные для пункта меню. Например, это условие его показа. Для этого перейдите в расширенный режим управления меню:
Расширенный режим редактирования меню
Вы можете выбрать любой удобной вариант редактирования.