Abr@X@bra.ru
Многоуровневое меню Битрикс
Многоуровневое меню Битрикс

Многоуровневое меню Битрикс

24.02.2017
1377

Вывести многоуровневое меню в Битрикс достаточно просто, но почему-то довольно часто именно на этом этапе у многих разработчиков возникают проблемы как это сделать. В этом посте расскажу и опишу каждый этап создание многоуровневого меню на системе управления 1С-Битрикс. 

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

Создаем раздел для инфоблока

И так, первое, что нам нужно сделать это создать сам инфоблок (его создание не обязательно если он уже создан). Переходим в админку сайта, контент далее типы инфоблоков и нажимаем кнопку - создать новый тип. Предположим, что это будет инфоблок с названием – информация, где будем хранить контент для сайта.





После того как мы создали сам тип ИБ, переходим в него, далее нужно создать сам ИБ нажимаем кнопку - добавить инфоблок. Предположим, что это будет будущий блок новостей для нашего сайта.


Задаем название нашего ИБ и незабываем открыть для него доступ, чтобы он был виден на визуальной части сайта Битрикс и жмем кнопку - сохранить. 






Переходим в наш новосозданный ИБ - новости. Давайте представим, что новости у нас будут разбиты на разные категории, давайте их создадим.



Допустим, что новости будут про достопримечательности разных городов России. Каждая категория будет описывать отдельный город. Я создам для примера три категории – Сочи, Москва, Санкт-Петербург. 

Создаем меню Битрикс

Итак все подготовительные работы проделаны давайте создадим сами типы меню. Для этого идем в настройки, настройки продукта, настройки модулей, управление структурой. Здесь нам нужно создать в разделе – типы меню, название нашего нового меню и нажать кнопку – сохранить.



Идем далее, давайте создадим сам раздел (папку) – новости в которую мы положим комплексный компонент – новостей. 







Перейдем в данный раздел и нажмем кнопку – добавить и выберем – добавить меню.



Тут нам нужно указать тот тип меняю который мы с вами создали до этого и нажать кнопку – сохранить.



После чего у нас в данном разделе появится новый файл  –  Меню типа «top_nav». Что нам нужно сделать еще, нужно создать еще один файл и назвать его – .top_nav.menu.ext.php 



Катим далее, как не странно но именно на этом этапе большенство не понимают, что за файл и как его называть. Все просто, создаем новый файл в данной категории и называем его точно также как наш тип меню, разница лишь в том, что нужно добавить точку в начале и в конце указать точку, после нее добавить ext.php В итоге должно получиться следующие –  .top_nav.menu_ext.php


После чего нужно открыть данный файл на редактирования как PHP




и поместить в него следущий код:


<? if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); global $APPLICATION; $aMenuLinksExt=$APPLICATION->IncludeComponent("bitrix:menu.sections", "", array( "IS_SEF" => "Y", "SEF_BASE_URL" => "/news/", "SECTION_PAGE_URL" => "#SECTION_ID#/", "DETAIL_PAGE_URL" => "#SECTION_ID#/#ELEMENT_ID#/", "IBLOCK_TYPE" => "company", "IBLOCK_ID" => "21", "DEPTH_LEVEL" => "3", "CACHE_TYPE" => "A", "CACHE_TIME" => "36000000" ), false ); $aMenuLinks = array_merge($aMenuLinksExt, $aMenuLinks); ?>

"SEF_BASE_URL" => "/news/", - каталог инфоблока на сайте

"SECTION_PAGE_URL" => "#SECTION_ID#/", - подставляем ID раздела

"DETAIL_PAGE_URL" => "#SECTION_ID#/#ELEMENT_ID#.html", - полный путь к элементу инфоблока

"IBLOCK_TYPE" => "company", - ID типа инфоблока из которого выводим

"IBLOCK_ID" => "21", ID инфоблока из которого выводим

"DEPTH_LEVEL" => "4", уровень вложенности, этой цифрой можно выводить подразделы разделов если иерархия многоуровневая

Дальше нам нужно перейти на визуальную часть сайта и зайти в настройки компоненты меню. Здесь нужно указать следующие параметры. После чего нажать – сохранить. 




Надеюсь, что у тебя все получилось, так как делал все пошагово. 

Если есть вопросы, пиши их пожалуйста в комментариях. 




menu
Читайте также:
Визуализация данных на JS

Визуализация данных на JS

D3 (Data-Driven Documents — Управление данными в документах [досл.]). Она позволяет «оживить» ваш проект, используя...
Читать
Вызов горячих функции PhpStorm/WebStorm

Вызов горячих функции PhpStorm/WebStorm

Привет мой юный друг) Это была ирония! Теперь давай перейдем собственно к делу, данный пост будет интересен тем разраб...
Читать
Выводим свойство инфоблоков 1С-Битрикс

Выводим свойство инфоблоков 1С-Битрикс

В данном посте хочу поделиться, как быстро и лишний раз не распечатывая массивы вывести свойства инфоблоков для компонен...
Читать