Если нужно вывести все разделы, со всей доступной информацией о них, внутри элемента инфоблока, например в карточке товара каталога- можно воспользоваться API методом CIBlockElement::GetElementGroups
Например: У нас есть каталог товаров, элементы которого могут находиться сразу в нескольких разделах инфоблока. Внутри карточки товара, мы хотим вывести ссылки на все разделы, в которых эта каточка находится. Что бы пользователям-покупателям было удобно отбирать товары
Пусть, визуально, это будет выглядеть так. Настройки ЧПУ для разделов инфоблока /catalog/#SECTION_ID#/
Для этого достаточно вывести названия и ID всех разделов в которых находится товар и сверстать.
Воспользуемся API методом CIBlockElement::GetElementGroups.
$ElementId = $arResult['ID']; $db_groups = CIBlockElement::GetElementGroups($ElementId, true); while($ar_group = $db_groups->Fetch()) { echo 'Все товары: <a href="/catalog/'. $ar_group["ID"] . '/">'; echo $ar_group["NAME"]; echo "</a>"; }
В коде, я не использую фильтр, в $ar_group хранится вообще вся информация о разделах: картинка, символьный код, дата создания итд. Но вывожу только ID- для постороенния ссылки и название.
В общем-то и все, Остается это сверстать под свой дизайн.
![]()
Stanislav2636
|
Привет.
Интересное решение описывается в вашей статье. Но у меня ЧПУ #catalog/#SECTION_CODE#/ Видимо, поэтому и не работает. Не подскажете, какие правки в код внести, чтобы работало на SECTION_CODE ? |
![]()
Михаил Базаров
|
||||||
Поменять ID на SECTION_CODE, по идее он тоже сюда передается Или, получить SECTION_CODE зная ID раздела
|
||||||
![]()
Иван Чухрай
|
Добрый день, Михаил! Отличное решение, Подскажите как вывести эти разделы в алфавитном порядке?
|
![]()
Михаил Базаров
|
||||
Загнать названия, моим способом, в массив. Потом этот массив отсортировать по алфавиту, способом
|
||||
![]()
Михаил Базаров
|
||
Отмена с массивом. Там можно конечно, на будет глупо не воспользоваться самим методом GetElementGroups
У него есть работа с сортировкой, соотвественно:
|
||
![]()
Иван Чухрай
|
||||||
А так все равно по алфавиту не сортирует:
|
||||||
![]()
jerrard.genry
|
||
Добрый день.
Михаил не могли бы помочь. В result.modifier.php получаю все разделы элемента, но так как с GetElementGroups я не могу получить UF_ свойства, надо дальше прогнать GetList
Не получаю то, что мне нужно. Понимаю что не так сделал , не силен в этом. Как мне добавить в полученный массив SECTION_LIST к каждому элементу дополнительно все свойства UF_ не могли бы помочь? Спасибо |
||
![]()
Михаил Базаров
|
||
И GetNext вместо Fetch |
||
![]()
jerrard.genry
|
||||
Можете показать пример решения пожалуйста или направить в нужную сторону? Хочется понять как можно было только с CIBlockSectionGetList |
||||
![]()
Dmitry Egorov
|
Дай бог тебе здоровья. Выручил в очередной раз)))
|
![]()
Роман Селькин
|
Михаил, день добрый
Если у меня ЧПУ #catalog/#SECTION_CODE_PATH#/ Не подскажете, какие правки в код внести, чтобы работало на SECTION_CODE_PATH ? Я еще новичек, если напишите полный код буду благодарен. |
![]()
Михаил Базаров
|
||||
|
||||
![]()
Роман Селькин
|
||||||
|
||||||
![]()
Роман Селькин
|
||||
|
||||
![]()
Михаил Базаров
|
||
Да, пути тут нет, его можно получить с помощью CIBlockSection::GetNavChain
Вы знаете ID раздела, выведите вот так
|
||
![]()
Роман Селькин
|
||
|
||
![]()
Роман Селькин
|
Вставил данный код/ При выполнении скрипта возникла ошибка.
|
![]()
Михаил Базаров
|
||||
|
||||
![]()
Роман Селькин
|
Опять ошибка скрипта.
|
![]()
Михаил Базаров
|
||
|
||
![]()
Роман Селькин
|
||||||
|
||||||
На нем, уже много видеоуроков по 1С-Битрикс. Как одиночные видео так и серии видеоуроков Перейти на канал
Совсем скоро выйдет видеокурс по разработке доски объявлений с мобильным приложением. Подписывайтесь и будьте в курсе: