Вывести разделы инфоблока в которых находится элемент Битрикс
Если нужно в карточке товара или новости, вывести структуру разделов в котором находится элемент. С одной стороны, это умеет делать компонент «навигационная цепочка», но можно, для большей гибкости, воспользоваться методом API CIBlockSection::GetNavChain
Например: достаточно редкий случай, но нужно вывести структуру разделов в результатах поиска по каталогу. По сути, там обычный catalog.section. В каждом элементе необходимо вывести цепочку навигации, в которой находится конкретный элемент:
Реализуется достаточно просто. Мы знаем ID раздела в котором находится товар. Посмотреть его можно просто: вызвав в элементе echo $arElement[‘IBLOCK_SECTION_ID’]
Зная ID одного раздела, методом CIBlockSection::GetNavChain можем получить и все родительские разделы данного раздела и еще кучу информации. В конкретном случае (имитации навигационной цепочки), нам нужна еще и ссылка на каждый раздел в цепочке
GetNext()) < $array_sections = $arSection; ?>"> ?>
Вставляем этот код в то место где хотим вывести «хлебные крошки». Использовать можно где угодно, везде где можете получить ID конечного раздела
Разделы информационного блока
Если при создании типа информационного блока вы указали, что инфоблоки данного типа имеют иерархическую структуру, то помимо конкретных элементов (например, товаров), каждый инфоблок также может содержать разделы и подразделы.
Например, информационный блок Торговый каталог может содержать раздел Сборка компьютеров, который, в свою очередь, может включать подразделы Компьютеры и Комплектующие.
С помощью данной формы вы можете управлять элементами иерархии (разделами и подразделами) выбранного информационного блока.
Форма поиска
Форма фильтра используется для выбора из разделов инфоблока в соответствии с указанными условиями. Нижеследующая таблица описывает параметры, по которым может выполняться поиск.
| Поле | Описание |
|---|---|
| Название* | Поиск по названию раздела. |
| Раздел | Вышележащий (родительский) раздел. |
| ID раздела | Поиск идентификатору раздела. Доступны варианты поиска по точному совпадению, диапазону и больше / меньше чем. |
| Дата изменения (DD.MM.YYYY) | Поиск по дате последнего изменения параметров раздела. |
| Кто изменил | Поиск по автору последнего изменения. |
| Дата создания (DD.MM.YYYY) | Поиск по дате создания раздела. |
| Кто создал | Поиск по автору раздела. |
| Активность | Позволяет отобрать активные, неактивные или все разделы информационного блока. |
| Символьный код | Поиск по мнемоническому коду раздела. |
| Внешний код | Внешний код раздела, используемый для связи раздела с внешними источниками данных. |
* — для данных полей вы можете воспользоваться специальными логическими выражениями.
Чтобы отобрать разделы информационного блока по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех разделов нажмите кнопку Отменить.
Контекстная панель
| Кнопка | Описание |
|---|---|
| Элементы | Переход к списку элементов информационного блока. Кнопка доступна при снятом флаге Совместный просмотр секций и элементов в настройках модуля Информационные блоки. |
| Добавить элемент | Переход к форме создания нового элемента для данного информационного блока. |
| Добавить раздел | Переход к форме создания нового раздела или подраздела для данного информационного блока. |
| Шаблоны бизнес-процессов | Переход к списку шаблонов бизнес процессов для данного информационного блока. |
Список разделов
- Разделы — переход к списку подразделов данного раздела. Данный пункт меню доступен только при снятом флаге Совместный просмотр секций и элементов в настройках модуля Информационные блоки.
- Элементы — переход к списку элементов данного раздела. Данный пункт меню доступен только при снятом флаге Совместный просмотр секций и элементов в настройках модуля Информационные блоки.
- Изменить — переход к форме редактирования раздела.
- Удалить — удаление раздела.
Групповые действия
| Действие | Описание |
|---|---|
| активировать | Активировать разделы, которые на данный момент не активны. |
| деактивировать | Деактивировать активные разделы. |
| создать символьный код | Действие создаёт символьные коды для выделенных разделов. Доступно если в настройках инфоблока выключен внешний сервис для перевода Для массового создания символьных кодов удобно использовать инструмент групповой генерации символьных кодов. |
- Вес – указывается вес торгового предложения в граммах;
- *Режим количественного учета – включается режим количественного учёта Количественный учет — режим работы с товарами в интернет-магазине на базе «1С-Битрикс: Управление сайтом», позволяющий изменять количество товара как вручную, так и автоматически после оформления заказов покупателями.
Для отсутствующего в магазине товара кнопка подписки будет отображаться в том случае, если в системе для него выполнены следующие настройки:
Первым делом в настройках товара необходимо указать группу, к которой принадлежит товар.
* – параметры, помеченные звёздочкой, отображаются только при выключенном складском учёте. Складской учет — режим работы с товарами в интернет-магазине на базе «1С Битрикс: Управление сайтом», позволяющий управлять складами, вести учет поступлений и списаний товара, реализовывать оборот товара на складах с помощью документов. Для редакции Малый бизнес наложено ограничение — возможно использование только одного склада.
* — данные поля доступны в том случае, если инфоблок является торговым каталогом.
Смотрите также
Вывод разделов инфоблока
Спасибо, капитаны очевидности!
То что можно вывести в шаблоне типо это понятно всем, но у большинства программистов задачи шире. Как пример, вывести названия разделов и сравнить их с тем что передается, скажем, $_POST запросом. К сожалению, очевидными способами, о которых вы тут говорите этого не сделать.
А теперь о том как сделать:
'asc'), array('IBLOCK_ID' => $infoblock)); while ( $ar_Section = $rs_Section->Fetch() ) < $ar_Resu[] = array( // собираем массив того, что нам нужно 'ID' =>$ar_Section['ID'], // id раздела 'NAME' => $ar_Section['NAME'], // имя раздела (что нас собственно интересует) 'IBLOCK_SECTION_ID' => $ar_Section['IBLOCK_SECTION_ID'], 'IBLOCK_SECTION_ID' => $ar_Section['IBLOCK_SECTION_ID'], 'LEFT_MARGIN' => $ar_Section['LEFT_MARGIN'], 'RIGHT_MARGIN' => $ar_Section['RIGHT_MARGIN'], 'DEPTH_LEVEL' => $ar_Section['DEPTH_LEVEL'], ); echo ''; print_r($ar_Resu); '
'; // смотрим, что у нас собралось в массив, и можно смело пользоваться именами > ?>
Как вывести разделы инфоблока и список элементов внутри?

в админке это вот так выглядит:
В магазинах будут разделы плиткой, по клику на раздел — список элементов (обычные картинки), всё просто.
Я пробовал с помощью различных компонентов это сделать. С помощью новостей и каталога в различных комбинациях. Выходят проблемы либо с чпу и вложенностью, либо с громоздкостью компонентов. Наиболее приближённым вариантом был компонент каталога. Но он очень большой для такой простой вещи, мне так и не удалось удалить из него всю лишнюю ерунду.
- Вопрос задан более трёх лет назад
- 4721 просмотр
