Добрый день.
Есть задача: вывести содержимое определенных разделов ИБ (со всеми подразделами). Разделы выбираются в настойках компонента.
Задумка реализации была такая:
Первым запросом вычисляем LEFT_MARGIN и RIGHT_MARGIN всех выбранных разделов-родителей,
вторым запросом делаем выборку всех поддеревьев ИБ по их LEFT_MARGIN и RIGHT_MARGIN с использованием arFilter со сложной логикой, что-то типа такого:
$arFilter = array(
"IBLOCK_ID" => $IBLOCK_ID,
"ACTIVE" => "Y",
array(
"LOGIC" => "OR",
array(">=LEFT_MARGIN" => 1, "<=RIGHT_MARGIN" => "16" ),
array(">=LEFT_MARGIN" => 31, "<=RIGHT_MARGIN" => "32" ),
),
);
Но похоже для CIBlockSection::GetList такой фильтр использовать нельзя?
Придется каждое поддерево выдергивать отдельным запросом CIBlockSection::GetList ?
Есть задача: вывести содержимое определенных разделов ИБ (со всеми подразделами). Разделы выбираются в настойках компонента.
Задумка реализации была такая:
Первым запросом вычисляем LEFT_MARGIN и RIGHT_MARGIN всех выбранных разделов-родителей,
вторым запросом делаем выборку всех поддеревьев ИБ по их LEFT_MARGIN и RIGHT_MARGIN с использованием arFilter со сложной логикой, что-то типа такого:
$arFilter = array(
"IBLOCK_ID" => $IBLOCK_ID,
"ACTIVE" => "Y",
array(
"LOGIC" => "OR",
array(">=LEFT_MARGIN" => 1, "<=RIGHT_MARGIN" => "16" ),
array(">=LEFT_MARGIN" => 31, "<=RIGHT_MARGIN" => "32" ),
),
);
Но похоже для CIBlockSection::GetList такой фильтр использовать нельзя?
Придется каждое поддерево выдергивать отдельным запросом CIBlockSection::GetList ?