битрикс меню для инфоблоков

Пункты меню из разделов инфоблока Битрикс

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

Как это сделать, смотрите в видео

Добавляем разделы в инфоблок:

Предположим что нам нужно создать меню из подкатегорий новостей. У нас уже есть готовый инфоблок для новостей и он выведен на сайт. В общем новости работают. И наступил момент, что новостей стало достаточно много и пора их разбить на несколько категорий: «Спорт», «Финансы» и.т.д.

Для начала создаем эти разделы:

битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоков

Теперь задача создать пункты выпадающего меню, которое автоматически будет брать разделы в качестве своих пунктов. Для этого нужно создать необходимый тип меню в Управлении структурой. В моем случае я создаю тип меню «Меню подраздела»

битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоков

Создаем в нужном каталоге сайта этот тип меню и рядом с ним создаем такой же файл с приставкой _ext.php.

битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоков

В моем примере я создаю блог на основе компонента новостей, потому каталог и соответствующий инфоблок называются blog

Настройка ext меню

битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоков

битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоков

В настройках компонента инфоблока также прописываем аналогичный путь к элементам и разделам инфоблока

битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоков

В итоге все вновь создаваемые разделы инфоблока будут автоматически попадать в выпадающее меню (в моем случае, вы можете проделать эти манипуляции для любого типа меню)

битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоков

Надеюсь объяснил наглядно и понятно, если остались вопросы или есть чем дополнить данную записку, прошу писать в комментариях. Всем успехов.

Источник

Меню из разделов инфоблока с элементами

В битриксе можно создавать меню из разделов инфоблока, для этого к компоненту menu подключается файл типа *.menu_ext.php, а в нем вызывается компонент menu.sections. Но нет возможности включать в меню элементы разделов, а это иногда бывает полезно. Так, кстати, сделано на этом сайте.

Для этого я сделал компонент menu.sections.elements, подключается он так же в файле *.menu_ext.php, коды я приведу ниже:

.parameters.php

component.php

.left.menu_ext.php (для примера)

Не забываем размещать свои компоненты в своем пространстве имен, в примере это max22

Комментарии:

Иван, в таком случае нужно получать элементы в цикле по найденым разделам, и ограничивать выборку 5-ю. Либо оставить как есть и уже после в цикле оставить по 5 элементов. Либо уже в шаблоне меню вывод ограничивать 5-ю элементами.

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

Может я не так делаю.
Создал папку /bitrix/components/Nick/menu.sections.elements

Nick, версия битрикса не причем.
Думаю вы к компоненту обращаетесь bitrix:menu.sections.elements или max22:menu.sections.elements, а нужно Nick:menu.sections.elements

Nick здесь это пространство имен компонентов.

раз папка у вас с большой буквы Nick, значит и в вызове компонента используйте большую Nick:menu.sections.elements

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

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

Думаю имеет место быть опечатка или что то в этом роде.

Действительно все дело в именах,а именно большая буква N. )))
Подключился компонент, но по-моему что то не так. Если в настройках я ставлю уровень вложенности 1 тогда получаю меню из списка разделов/элементов инфоблока + 1й пункт состоит из раздела/элемента + подразделы + элементы подраздела, т.е. это вроде как лишнее. Т.е. тогда уж и первый пункт должен быть не разворачивающийся.

Если ставлю глубину 2 тогда получаю меню из разделов/элементов и подразделов + элемент подраздела, это уже подходит, но как убрать элементы подразделов?

Nick, Элементы всегда будут подключаться, т.е. если глубина 1, то будут разделы 1-го уровня и их элементы. На выходе имеем 2-х уровневое меню. Если вам нужно другое поведение, то можно в коде компонента добавить необходимые условия.

Насчет ULR понял, у меня они настроены под стандартный компонент menu.sections от того и едет.

>Элементы всегда будут подключаться, т.е. если глубина 1, то будут разделы 1-го уровня и их элементы. На выходе имеем 2-х уровневое меню.

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

Все еще мучаю компонент. 🙂

В массиве нет поля Sort, как его туда добавить. Подскажите пожалуйста очень хочется настроить все как надо уж больно хороший компонент. 🙂

Nick, попробуйте заменить стороку

Оказывается это я намудрил с функцией сортировки, она выдавала ошибку.

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

и в самой функции перед циклом перебора массивов добавил
if ($ft) <
$res[] = array(
htmlspecialchars($iblock[‘NAME’]),
$iblock[‘LINK’],
array(), //массив доп ссылок
array(
‘FROM_IBLOCK’ => true,
‘IS_PARENT’ => 1,
‘DEPTH_LEVEL’ => 1,
),
);
$ft = FALSE;
>

В шаблоне по этому параметру будете определять раздел это или нет.

PS Что за проблема была со ссылками? Шаблоны пути были не указаны в настройках инфоблока?

Для вашего меню пришлось поправить, но теперь вроде все заработало, осталось разобраться с внешним видом.

А вообще очень здорово вы сделали. Я перебрал 3 или 4 варианта этого кастомного компонента и ни один нормально не работал.

Я первым делам в шаблоне пишу:
‘;

Смотрю что приходит из компонента.

Посмотрела, похоже, что IS_SECTION все-таки заполняется правильно:

Но почему тогда при фильтрации они не различаются. Может, неправильно обращаюсь? Как писать:

или

Олег, для этого нужно изменить код:

Здравствуйте! посоветуйте пожалуйста.

что можно сделать пожалуйста подскажите

Подскажите,а как можно реализовать загрузку пунктов меню только по указанному разделу инфоблока?

Желательно чтобы можно было в коде файла меню указывать раздел инфоблока, например добавив SECTION_ID:

[. Код вырезал для экономии места. ]

К сожалению не очень дружу с php, если можно покажите пример кода.

Как добавить параметр в конпонент я разобрался, вроде бы сделал верно: «SECTION_ID» => array( «NAME» => GetMessage(«SECTION_ID_VARIABLE_PHR»), Не пойму как сделать фильтр в компоненте по этому параметры, компонент у меня измененный:

[. Много кода вырезал для экономии места. ]

Николай, фильтровать разделы с подразделами по разделу родителю нужно с помощью полей LEFT_MARGIN, RIGHT_MARGIN принцип следующий:

1. Получаете родительский раздел по SECTION_ID, у него получаете поля LEFT_MARGIN, RIGHT_MARGIN.

PS из начала убираем [ВАШ БЛОК С ПОЛУЧЕНИЕМ LEFT_MARGIN, RIGHT_MARGIN]

Источник

Битрикс меню для инфоблоков

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

Рассмотрим на примере моего сайта

К главному меню под названием «Верхнее горизонтальное меню» к разделу «Услуги» мне надо вывести подменю из элементов инфоблока «Услуги по разработке».

битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоков

В моем случае меня интересует инфоблок «Услуги по разработке», у которого ID равен 11.

битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоков

битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоков

Создаем тип меню «left_infoblock» с названием «Меню элементов инфоблока», конечно Вы можете указать удобное Вам наименование.

битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоков

3) Теперь в папке, где будет размещаться инфоблок (согласно его настройке) создаем файлы отвечающие за меню.

битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоков

Выбираем в типе меню только что нами созданное и нажимаем «Сохранить». Меню будет пустое, так как формироваться оно будет на основе инфоблока.

битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоков

Теперь нам надо создать дополнительный обработчик данного меню. Для этого создается в этой же папке с меню файл под названием «.ваше_меню.menu_ext.php», а в моем случае «.left_infoblock.menu_ext.php»

В него мы скопируем следующий код:

Нам осталось в коде поправить переменную $IBLOCK_ID, в которой хранится ID нашего инфоблока. У меня ID = 11, следовательно $IBLOCK_ID = 11;

4) Выводим меню на страницу сайта.

битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоков

И теперь настраиваем его. Выбираем «Тип меню для первого уровня» наше меню со ссылкой на раздел инфоблока, «Уровень вложенности меню» делаем 2 и в «Тип меню для остальных уровней» ставим «Меню элементов инфоблока».

битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоков

Если все сделали правильно у Вас сформируется подменю из элементов инфоблока.

битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоков

битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоков

битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоков битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоков

битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоков

битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоков

Заполните форму

Продолжая использовать этот сайт, Вы принимаете условия политики конфиденциальности и даёте согласие на обработку пользовательских данных. Подробнее

Продолжая использовать этот сайт, Вы принимаете условия политики конфиденциальности и даёте согласие на обработку пользовательских данных (файлов cookie), в том числе с использованием систем аналитики «Яндекс. Метрика» и «Google Analytics», (IP-адрес; версия ОС; версия веб-браузера; сведения об устройстве (тип, производитель, модель); разрешение экрана и количество цветов экрана; наличие программного обеспечения для блокирования рекламы; наличие Cookies; наличие JavaScript; язык ОС и Браузера; время, проведенное на сайте; глубина просмотра; действия пользователя на сайте; географические данные) в целях определения посещаемости сайта. Отказаться от обработки пользовательских данных и использования «cookie» можно, выбрав соответствующие настройки в браузере. Однако это может повлиять на работу некоторых функций сайта. Скрыть

Источник

Меню из разделов и элементов инфоблока

инфоблок (каталог):
— Первый раздел
— Подраздел первого раздела
—Элемент 1
—Элемент 2
—Элемент 3
-Второй раздел
— Подраздел второго раздела
—Элемент 1
—Элемент 2
—Элемент 3

Результат:
получаю меню из разделов инфоблока,
то есть так:
то есть примерно такая структура:

инфоблок (каталог):
— Первый раздел
— Подраздел первого раздела
-Второй раздел
— Подраздел второго раздела

А как получить 3-й уровень с элементами?

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

в интернете нашла такой код

Он выводить только элененты со всез разделов инфоблока
вот так:
—Элемент 1
—Элемент 2
.
—Элемент N

Возможно ли их как нибуть связать и получить нужный результат?

Теперь проблема с url.
Каталог находиться в разделе адрес_сайта//technika-chetra/
При нажатии на ссылку нет перехода на нужный раздел или элемент. Остается то же соджержание, что и на страницы адрес_сайта//technika-chetra/

в настройке инфоблока так
URL страницы информационного блока:
— /technika-chetra/

URL страницы раздела:
— /technika-chetra/?SECTION_ID=#ID#

URL страницы детального просмотра:
— /technika-chetra/?SECTION_ID=#ID#&ELEMENT_ID=#ID#

что не так? не могу понять.
а если так прописывать
/technika-chetra/
/technika-chetra/#SECTION_ID#/
/technika-chetra/#SECTION_ID#/#ELEMENT_ID#/

то вообще ничего не выходит. белое окно браузера

Или напишите в скайп, bxdevs

Спасибо, Дмитрий, за предложенный выше component.php.

Одно замечание.
в конце component.php нужно добавить вот эту строчку:

SECTION_PAGE_URL»],
);
$arResult[«ELEMENT_LINKS»][$arSection[«ID»]] = array();
>
$this->EndResultCache();
>
>

$aMenuLinksNew[$menuIndex++] = array(
htmlspecialchars($arSection[«

$aMenuLinksNew[$menuIndex++] = array(
$element[«NAME»],
$element[«

Спасибо! Работает, раньше ума хватало только «catalog.section.list» мастырить в таких случаях.

SECTION_PAGE_URL»],
);
$arResult[«ELEMENT_LINKS»][$arSection[«ID»]] = array();
>
$this->EndResultCache();
>
>

$aMenuLinksNew[$menuIndex++] = array(
htmlspecialchars($arSection[«

$aMenuLinksNew[$menuIndex++] = array(
$element[«NAME»],
$element[«

Источник

Битрикс меню для инфоблоков

Современные сайты наполняются содержанием с помощью специального программного обеспечения: CMS.

Для кого этот курс?

Курс Контент-менеджер адресован тем, кто работает с содержанием сайта: наполнение, изменение текста, загрузка и размещение картинок и так далее.

У нас часто спрашивают, сколько нужно заплатить

Ещё у нас есть Академия 1С-Битрикс, где можно обучиться на платной основе на курсах нашей компании либо наших партнёров.

Баллы опыта

битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоковуроке.

Практика и тесты

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

После изучения курса пройдите тесты на сертификацию. При успешной сдаче последовательности тестов со страницы Моё обучение скачайте сертификат об успешном прохождении курса в формате PDF.

Для преподавания оффлайн

Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 2 дня (16 академических часов).

Если нет интернета

битрикс меню для инфоблоков. Смотреть фото битрикс меню для инфоблоков. Смотреть картинку битрикс меню для инфоблоков. Картинка про битрикс меню для инфоблоков. Фото битрикс меню для инфоблоковСкачать материалы курса в формате EPUB. Файлы формата EPUB Чем открыть файл на
Android:
EPUB Reader
CoolReader
FBReader
Moon+ Reader
eBoox

iPhone:
FBReader
CoolReader
iBook
Bookmate

Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome

Как проходить учебный курс?

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *