Многоуровневое меню php битрикс
1С-Битрикс. Пишем человеческий шаблон многоуровнего меню каталога
Не буду писать про боль при интегации дефотного шаблона. Давайте просто напишем свой, с блекджеком и вот этим всем.
В заметке (интересного):
Вводные данные
Предположим, что шаблон вашего сайта называется main. Все пути в заметке будут на основе его.
Шаблон меню обзовём template-with-ul-recursive.
Тип меню будет catalog-left-menu
Вызываем компонент bitrix:menu
Остальные параметры индивидуальны.
CSS-класс для каждого пункта меню
Для секции добавим (пригодится) новое пользовательское свойство с именем UF_CSS_CLASS_MENU и типом строка. Свойство можно добавить на странице редактирования любого раздела нужного инфоблока (вкладка “Доп. поля”)
Наполняем пунктами меню
Важно! Урлы секций обрабатываются только для варианта #SECTION_CODE_PATH#
Создаём папку и файлы шаблона
Создадим папку для нашего шаблона local/templates/main/components/bitrix/menu/template-with-ul-recursive
Создаём в этой папке файл result_modifier.php. В нём мы соберём массив нужного нам формата, чтобы потом в шаблоне было удобно выводить само меню.
Создаём в папке local/templates/main/components/bitrix/menu/template-with-ul-recursive/ файл template.php с нашим шаблоном
Вот, собственно, и всё. Надеюсь, вам понравилось Подписывайтесь на канал, ставьте пальцы вверх и т.п. 🙂
Похожие записи
1С-Битрикс. LazyLoad или ленивая загрузка контента при включенном кешировании
В этой заметке я хочу рассказать о технологии LazyLoad или в простонародье «ленивая загрузка» в Битриксе. Метод, описанный мной, будет точно работать в компонентах catalog.section и news.list.
1C-Битрикс. Кастомизация нового шаблона компонента sale.order.ajax
С выходом нового шаблона компонента sale.order.ajax на форумах битрикса разгораются возмущения и недомения. Мол, теперь код всего шаблона на JavaScript и как его кастомизировать непонятно. На самом деле да, код js-скрипта составляет почти семь тысяч строк. Сходу в таком количестве кода, даже хорошо написанного (к сожалению, битрикс этим не балует), соблюдая паттерны программирования, будет непросто.
В этой заметке я покажу способ, как можно кастомизировать основной скрипт логики шаблона оформления заказа (order_ajax.js), не прибегая к его правке. Что нам это даёт? Когда прилетят очередные обновления шаблона, мы просто заменим его и всё. Все наши кастомизации будут работать (в теории).
1С-Битрикс. Защита от спама в регистрации без капчи
Не редкость, когда боты начинают регистрироваться на сайтах и захламлять списки пользователей своим присутствием. В «1С-Битрикс» можно включить капчу для защиты от спама. Но порой и капча не спасает, да и заставлять пользователей вводить код с капчи, я считаю, не гуманно. Воспользуемся другим трюком.
6 комментариев
Не буду писать про боль при интегации дефотного шаблона bitrix:menu
там вся боль успешно убирается через result_modifier.php https://dev.1c-bitrix.ru/community/webdev/user/25535/blog/hierarchical-menus-and-resultmodifier/
поработаем с сущностями инфоблока через ORM D7
я в этом нагрмождении кода вижу только очередное доказательство ненужности D7 для инфоблоков
Сергей, спасибо!
Это что за сумашествие? А switch хотя б не судьба использовать?
Чем здесь поможет свич?
Посмотри ещё раз на свой скриншот и покажи свой вариант, чтобы работал точно так же, как у меня.
I agree. whole tape of logic that is hard to read. why it is impossible to take out processing to the class and speaking methods
Многоуровневое меню php битрикс
Цитатник веб-разработчиков В тексте курса вы встретите цитаты, высказанные в разное время разработчиками системы и разработчиками проектов на базе Bitrix Framework. Надеемся, что такие неформальные замечания внесут некоторое разнообразие в процесс изучения. Заодно опытные специалисты поделятся и своим опытом.
Чтобы научиться программировать в Bitrix Framework, нет необходимости изучать всю линейку курсов. Но есть моменты, которые необходимо знать разработчикам о системе, они раскрыты в начальных курсах:
Как построен курс
Общепринятая градация квалификации разработчиков в рамках курса обозначает что:
Начальные требования к подготовке
Для успешного изучения курса и овладения мастерством разработки сайтов на Bitrix Framework необходимо владеть (хотя бы на начальном уровне):
У нас часто спрашивают, сколько нужно заплатить
Но у нас есть Академия 1С-Битрикс, где можно обучиться на платной основе на курсах нашей компании либо наших партнёров.
Тесты
После изучения курса вам будет предложено пройти тесты на сертификацию. При успешной сдаче последовательности тестов на странице Моё обучение можно просмотреть результат обучения и загрузить сертификат в формате PDF.
Комментарии к статьям
Что дальше?
Одновременно с изучением курса Разработчик Bitrix Framework вам придётся обращаться к информации о других технологиях Bitrix Framework. Эта информация размещена в следующих курсах:
Для преподавания оффлайн
Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 5 дней (40 академических часов).
Если нет интернета

Android:
EPUB Reader
CoolReader
FBReader
Moon+ Reader
eBoox
iPhone:
FBReader
CoolReader
iBook
Bookmate
Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome
iOS
Marvin for iOS
ShortBook
обновляются периодически, поэтому возможно некоторое отставание их от онлайновой версии курса.
Многоуровневое меню php битрикс
Цитатник веб-разработчиков В тексте курса вы встретите цитаты, высказанные в разное время разработчиками системы и разработчиками проектов на базе Bitrix Framework. Надеемся, что такие неформальные замечания внесут некоторое разнообразие в процесс изучения. Заодно опытные специалисты поделятся и своим опытом.
Чтобы научиться программировать в Bitrix Framework, нет необходимости изучать всю линейку курсов. Но есть моменты, которые необходимо знать разработчикам о системе, они раскрыты в начальных курсах:
Как построен курс
Общепринятая градация квалификации разработчиков в рамках курса обозначает что:
Начальные требования к подготовке
Для успешного изучения курса и овладения мастерством разработки сайтов на Bitrix Framework необходимо владеть (хотя бы на начальном уровне):
У нас часто спрашивают, сколько нужно заплатить
Но у нас есть Академия 1С-Битрикс, где можно обучиться на платной основе на курсах нашей компании либо наших партнёров.
Тесты
После изучения курса вам будет предложено пройти тесты на сертификацию. При успешной сдаче последовательности тестов на странице Моё обучение можно просмотреть результат обучения и загрузить сертификат в формате PDF.
Комментарии к статьям
Что дальше?
Одновременно с изучением курса Разработчик Bitrix Framework вам придётся обращаться к информации о других технологиях Bitrix Framework. Эта информация размещена в следующих курсах:
Для преподавания оффлайн
Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 5 дней (40 академических часов).
Если нет интернета

Android:
EPUB Reader
CoolReader
FBReader
Moon+ Reader
eBoox
iPhone:
FBReader
CoolReader
iBook
Bookmate
Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome
iOS
Marvin for iOS
ShortBook
обновляются периодически, поэтому возможно некоторое отставание их от онлайновой версии курса.
Создание меню с каталогом в битриксе
Битрикс всем хорошо, но создание меню и, тем более, меню с каталогом — может вызвать трудности для неподготовленного пользователя. В документации, конечно, описан весь процесс, но, по опыту автора данной статьи, он не всем понятен. В рамках данной краткой заметки, собственно, рассматривается процесс создания меню с каталогом на битриксе.
Создание меню с каталогом можно поделить на три шага: Создание компонента простого меню, создание файла меню с каталогом, подключение файла к компоненту меню. Итак, процесс происходит следующим образом:
Шаг 1. Создание компонента меню
Как известно, у битрикса есть стандартный компонент меню с набором шаблонов (в данном случае, неважно, какой шаблон применяется. В качестве примера пусть будет горизонтальный).
Вызов шаблона в хедере будет выглядеть примерно так:
Далее, следует перейти в публичную часть, включить режим редактирования и создать пункты меню. Выглядеть это будет примерно следующим образом и сложностей, по-идее, возникнуть не должно:
После нажатия кнопки «сохранить» можно будет сразу увидеть изменения. К слову, уровень вложенности нужно ставить от 2 и выше. Тут, собственно, всё, можно переходить к более «интересным» пунктам.
Шаг 2. Создание файла каталога меню
Внутри файла следует добавить следующий код:
Обратите внимание, что если каталог товаров находится по адресу /catalog/ — то products нужно поменять, соответственно, на catalog. Параметр Depth_level — это глубина вложенности. В данном случае — до 4-х разделов. Собственно, в данном пункте работа закончена, можно переходить в публичную часть к выводу данного меню.
Шаг 3. Вывод меню каталога
На данном шаге мы переходим в публичную часть и выводим наше меню каталога товаров. Для этого следует выполнить 3 простых шага:
Меню должно отобразиться. Если же оно не отобразилось, можно попробовать вызвать в настройках меню следующий пункт и там обновить кеш компонента (или включить его, если потребуется):
После этого всё точно должно заработать. На выходе получиться что-то вроде этого:
Выше был рассмотрен процесс создания меню в битриксе, на этом тему заметки можно считать исчерпанной. Но, представляется верным сделать, в заключение, небольшое примечание: Несмотря на описанный выше функционал, на больших проектах приходится прибегать к ручному (html) созданию меню (как бы это не было бы неудобно). Что касается сравнения с другими CMS — конечно, битрикс в данном функционале значительно проигрывает WP.
Пункты меню из разделов инфоблока Битрикс
В принципе это стандартная возможность системы управления битрикс, но почему-то часто спрашивают как это сделать. Возможно в документации данный вопрос освещен не достаточно понятно. Постараюсь рассказать по простому, со скринами, как же вывести разделы инфоблока в меню.
Как это сделать, смотрите в видео
Добавляем разделы в инфоблок:
Предположим что нам нужно создать меню из подкатегорий новостей. У нас уже есть готовый инфоблок для новостей и он выведен на сайт. В общем новости работают. И наступил момент, что новостей стало достаточно много и пора их разбить на несколько категорий: “Спорт”, “Финансы” и.т.д.
Для начала создаем эти разделы:
Теперь задача создать пункты выпадающего меню, которое автоматически будет брать разделы в качестве своих пунктов. Для этого нужно создать необходимый тип меню в Управлении структурой. В моем случае я создаю тип меню “Меню подраздела”
Создаем в нужном каталоге сайта этот тип меню и рядом с ним создаем такой же файл с приставкой _ext.php.
В моем примере я создаю блог на основе компонента новостей, потому каталог и соответствующий инфоблок называются blog
Настройка ext меню
В настройках компонента инфоблока также прописываем аналогичный путь к элементам и разделам инфоблока
В итоге все вновь создаваемые разделы инфоблока будут автоматически попадать в выпадающее меню (в моем случае, вы можете проделать эти манипуляции для любого типа меню)
Надеюсь объяснил наглядно и понятно, если остались вопросы или есть чем дополнить данную записку, прошу писать в комментариях. Всем успехов.











