Добрый день!
Необходимо выбрать все разделы, содержащие в себе инфоблоки с заданным значением одного из свойства.
Первое что приходит в голову - это
Т.е. выборка идет в два этапа, т.е. в два запроса к БД и иттерацией в масиве. А как-нибудь можно обойтись без этого? Может есть более красивое решение?
Заранее спасибо.
Необходимо выбрать все разделы, содержащие в себе инфоблоки с заданным значением одного из свойства.
Первое что приходит в голову - это
| Код |
|---|
$rsElement = CIBlockElement::GetList($arSort, array_merge($arFilter, $arrFilter, $arParams["CUSTOM_IBLOCK_PROPERTIES"]), false, $arNavParams, $arSelect );
// где arParams["CUSTOM_IBLOCK_PROPERTIES"] - массив с этим свойством
// а потом уже:
while($obElement = $rsElement->GetNextElement())
{
$arItem = $obElement->GetFields();
$result = CIBlockElement::GetElementGroups($arItem["ID"]); // выборка раздела
while($r=$result->GetNext()){
$arItem["SECTION"]["URL"]=$r["SECTION_PAGE_URL"];
$arItem["SECTION"]["NAME"]=$r["SECTION_PAGE_URL"];
}
}
|
Заранее спасибо.