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