1С-бітрікс багаторівневе деревоподібна меню по підрозділах - сергиев посад - студія omniweb

Інструкція про те, як зробити в 1С-Бітрікс повноцінне багаторівневе деревоподібна меню, яке буде збиратися з підрозділів з використанням стандартного компонента меню (bitrix: menu).

Для того, щоб зробити багаторівневе меню в 1С-Бітрікс досить в налаштуваннях модуля "Управління структурою" зробити меню для верхнього рівня і додаткове меню для наступних рівнів. Якщо таке меню відображати завжди починаючи з верхнього рівня, то проблем не буде - на всіх сторінках воно буде відображатися однаково правильно.

Опис проблеми типового рішення: Але якщо ви захочете (як часто роблять) при переході в розділ відображати його підпункти окремим блоком, то тут виникає проблема, що відображаються тільки елементи поточного рівня, а не всього підрозділу. Т. е. Структура вкладеності розділу, відображається тільки на верхньому рівні, а при переході вглиб розділу залишаються тільки пункти меню відповідного рівня.

Ось як це виглядає на практиці. Меню в розділі:

1С-бітрікс багаторівневе деревоподібна меню по підрозділах - сергиев посад - студія omniweb

Якщо зайти в підрозділ ліцензії, то все верхні пункти меню пропадають:

1С-бітрікс багаторівневе деревоподібна меню по підрозділах - сергиев посад - студія omniweb

Рішення: Для вирішення даної проблеми доведеться трохи схитрувати і використовувати три меню. Одне верхнього рівня (top) - великі розділи, друге меню (left), яке у нас вже було для підрозділів і третє меню (left2) тільки для підстановки всього дерева для відображення. При цьому в меню left2 ми не будемо додавати вручну ніяких пунктів.

Верхній рівень меню робимо звичайним способом без будь-яких хитрощів, можна використовувати стандартний деревовидний шаблон меню, що випадає.

Для меню розділу використовуємо включається область розділу, в яку поміщаємо стандартний компонент Меню (bitrix: menu). Тип меню для першого рівня вказуємо left2, глибина вкладеності 4, Тип меню для інших рівнів - left. І найголовніше що потрібно зробити, додати файл .left2.menu_ext.php наступного змісту:

При цьому всі пункти меню ми додаємо тільки в top (в корені сайту) і left (на всіх інших рівнях сайту).

У підсумку отримуємо те, що і було потрібно:

1С-бітрікс багаторівневе деревоподібна меню по підрозділах - сергиев посад - студія omniweb

Недоліки: Головний і мабуть єдиний недолік такого методу - редагувати меню left доведеться через адмінку, т. К. В режимі редагування сайту Бітрікс НЕ буде підчіплювати це меню, а буде показувати left2, яке у нас порожнє, т. К. Заповнюється автоматично з left .