mills
@mills

Как распределить элементы по разделам GetList?

Всем привет!
У меня есть инфоблок №1 с разделами и в каждом разделе есть элементы. У каждого раздела есть связь с другими разделами у инфобоока №2.
Мне нужно что бы инфоблок №1 показывал элементы раздела в другом разделе инфоблока №2 где связь у раздела инфоблока №1 имеется связь свойством...
Надеюсь не замудренно объяснил...

У меня все выводится так как надо, только загвостка в том что на странице где разделы инфоблока №2 в каждом разделе выводится одни и те же элементы, но должны быть раздые.

//Общая информация гетлистов
$IBLOCK_ID = 13;
$arOrder = array("SORT" => "DESC");
$arSelect = Array("ID", "IBLOCK_ID", "*", "UF_*");

//Разделы
$arFilter = Array("IBLOCK_ID" => $IBLOCK_ID);
$resSection = CIBlockSection::GetList(array(), $arFilter, false, $arSelect);
while($arSections = $resSection->GetNext()){
	$isSectionId[] = $arSections['UF_SECTION_ID']; //Свойство привязки к разделу инфоблока №2
}


Вот гетлист того что должно выходить:

$arFilters = Array("IBLOCK_ID" => $IBLOCK_ID);
$resItem = CIBlockElement::GetList($arOrder, $arFilters, false, false, $arSelect);

while($ob = $resItem->GetNextElement()){
$arFields = $ob->GetFields(); 
$arProps = $ob->GetProperties();
?>
<pre>
<?print_r($arFields['NAME']);?>
</pre>
<?
}


Пробовал в фильтре вывода элементов прописывать:
$arSection['ID'] = $isSectionId;
in_array($arSection['ID'], $isSectionId);

И условие пробовал прописать...
Но не выходило так как надо...
Кто может подсказать или дать направление как еще можно сдлать, буду очень рад!
  • Вопрос задан
  • 147 просмотров
Решения вопроса 1
gromdron
@gromdron
Работаю с Bitrix24
По результатам общения в комментариях немного изменили код запросов и алгоритм выборки.
Проблема была в алгоримтах.

Я бы порекомендовал дополнительно:
1) Разделить шаблон на 2 части: result_modifier.php (логика, запросы, обработка результатов) и template.php (чисто визуальное отображение), иначе вы запутаетесь.
2) Проверить чтобы $arParams['PARENT_SECTION'] была не нулевая (не null, 0, false не пустой массив), иначе есть шанс получить все разделы
3) Не использовать запросы в цикле
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы