Документация для разработчиков
Темная тема

Меню

Компонент выводит меню указанного типа. Компонент является стандартным и входит в дистрибутив модуля.


Описание menu

В визуальном редакторе компонент расположен по пути: Служебные > Навигация > Меню.

Компонент относится к Главному модулю.

В поставку продукта входят следующие шаблоны компонента Меню (bitrix:menu):

  • Горизонтальное многоуровневое выпадающее меню (Яркий) (horizontal_multilevel);
  • Левое меню (Яркий) (left);
  • Вертикальное меню по умолчанию (Встроенный шаблон) (.default);
  • Голубое меню в виде закладок (Встроенный шаблон) (blue_tabs);
  • Серое меню в виде закладок (Встроенный шаблон) (grey_tabs);
  • Древовидное меню (Встроенный шаблон) (tree);
  • Вертикальное многоуровневое выпадающее меню (Встроенный шаблон) (vertical_multilevel).


Параметры

Поле Параметр Описание
Основные параметры
Тип меню для первого уровня ROOT_MENU_TYPE Указывается тип меню верхнего уровня, соответствующий данному меню.
Настройки кеширования
Тип кеширования MENU_CACHE_TYPE Тип кеширования:
  • A - Авто: автоматически обновляет кеш компонентов в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
Время кеширования MENU_CACHE_TIME Время кеширования в секундах.
Учитывать права доступа MENU_CACHE_USE_GROUPS При кешировании будут учитываться права доступа пользователя к тем или иным пунктам меню. Если меню построено без учета прав доступа, флажок лучше снять - размер кеша уменьшится.
Значимые переменные запроса MENU_CACHE_GET_VARS Если отображение меню зависит от параметров страницы, то при использовании кеширования необходимо указать параметры в этом поле. Параметры вводятся через запятую.
Дополнительные настройки
Уровень вложенности меню MAX_LEVEL В выпадающем списке выберите уровень вложенности. Доступно четыре уровня. Чем больше число, тем пункты более низких уровней будут отображены.
Тип меню для остальных уровней CHILD_MENU_TYPE Укажите тип меню для меню нижних уровней.
Подключать файлы с именами вида .тип_меню.menu_ext.php USE_EXT [Y|N] При отмеченной опции будет разрешено подключать файлы с именами вида .тип_меню.menu_ext.php.
Откладывать выполнение шаблона меню DELAY [Y|N] При отмеченной опции выполнение шаблона будет происходить после загрузки страницы. Очень удобен при включенном кешировании компонента, если нужно все же выполнять какие-то действия по модификации внешнего вида пунктов меню в зависимости от текущей страницы. Например, добавление пунктов меню в компонентах.
$GLOBALS['BX_MENU_CUSTOM']->AddItem('left', array(
'TEXT' => 'Моб. версия', 'LINK' => $APPLICATION->
GetCurPage(false) . '?mobile'))

Первый параметр - тип меню. Второй - массив, описывающий пункт меню.

Разрешить несколько активных пунктов одновременно ALLOW_MULTI_SELECT [Y|N] При отмеченной опции будет разрешено несколько активных пунктов меню одновременно.
Параметры для ручной настройки, в форме настройки компонента не видны
CACHE_SELECTED_ITEMS Y\N. Определяет подмешивать или нет URL в кеш. По умолчанию С версии 23.300.0. - N. Если параметр имеет значение Y, то меню кешируется отдельно для каждого раздела. Если на сайте много разделов, то размер кеша меню может вызвать падение сайта из-за переполнения места на диске. Ограничение константы отключающей подмешивание URL в том, что во вложенном разделе может полностью быть переопределены пункты меню.
MENU_CACHE_USE_USERS Y\N. Определяет подмешивать ли в кеш id пользователя.То есть делать ли его уникальным для каждого пользователя. Нужно когда оно отличается для каждого пользователя.


Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:menu",".default",Array(
		"ROOT_MENU_TYPE" => "top", 
		"MAX_LEVEL" => "1", 
		"CHILD_MENU_TYPE" => "top", 
		"USE_EXT" => "Y",
		"DELAY" => "N",
		"ALLOW_MULTI_SELECT" => "Y",
		"MENU_CACHE_TYPE" => "N", 
		"MENU_CACHE_TIME" => "3600", 
		"MENU_CACHE_USE_GROUPS" => "Y", 
		"MENU_CACHE_GET_VARS" => "" 
	)
);?>


Смотрите также



Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
3
Саргис Алексанян
Сообщение не промодерировано, возможны ошибки и неточности.
Цитата
пишет:
Если стоит компонент меню на разных страницах. с одним шаблоном и одним типом меню, но независимо, от того, что файлы типов меню в разных разделах с разным содержимым, кеш будет одним. что приводит к дублированию меню.

Если нужно в разных раделах один тип меню. но разное содержимое. включайте параметр "CACHE_SELECTED_ITEMS" => "Y"

Спасибо вам большое
0
Митрошин Владислав
Сообщение не промодерировано, возможны ошибки и неточности.
Цитата
пишет:
CACHE_SELECTED_ITEMS
на страницах если размещать - компонент отрабатывает.
А вот если в хедер и футер запихать один компонент, то этот параметр точно необходим.
7
Константин Уренев
Сообщение не промодерировано, возможны ошибки и неточности.
Если стоит компонент меню на разных страницах. с одним шаблоном и одним типом меню, но независимо, от того, что файлы типов меню в разных разделах с разным содержимым, кеш будет одним. что приводит к дублированию меню.

Если нужно в разных раделах один тип меню. но разное содержимое. включайте параметр "CACHE_SELECTED_ITEMS" => "Y"
0
Виктор Карев
Сообщение не промодерировано, возможны ошибки и неточности.
Если пользователь не авторизован, то меню кэшируется всегда, независимо от параметра MENU_CACHE_TYPE.
Если подключен файл типа .тип_меню.menu_ext.php, то меню не кэшируется, независимо от параметра MENU_CACHE_TYPE.
0
Олег Калиновский
Сообщение не промодерировано, возможны ошибки и неточности.
MENU_CACHE_GET_VARS - Если отображение меню зависит от !!!GET!!! параметров страницы, то при использовании кеширования необходимо указать параметры в этом поле. Параметры вводятся через запятую.
Если передать в массив какое-то значение, которого нет в GET параметрах, новый кеш создаваться не будет.
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх