@VladimirPortev

Как вывести раздел со всеми элементами без разбиения?

Всем привет. Помогите, пожалуйста разобраться. Не могу понять, где ошибка.
Компонент catalog.section.

Элементы выводятся.
Программно вывожу разделы.
Есть разделы в которых несколько элементов.
Проблема в том, что контент разбивается на

1 раздел -> 1 элемент.

И получается задвоение разделов

То есть раздел Шины. Элементы: Зимняя резина, Летняя резина.
А в контенте отображается так

Раздел Шины
Зимняя резина

Раздел шины
Летняя резина

А надо так.

Раздел Шины
Зимняя резина
Летняя резина

я не могу использовать компонет catalog.section.list - потому что мне надо еще подтягивать
торговое предложение, а в catalog.section оно есть

$new_arr = array();

foreach($arResult["ITEMS"] as $arItem){	
	$new_arr[] = $arItem["IBLOCK_SECTION_ID"];
}

foreach($new_arr as $key => $value){


$arFilter = array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "ID" => $value, "ACTIVE" => "Y");
$arSelect = array("ID", "NAME");
$res = CIBlockSection::GetList(array("SORT" => "DESK"), $arFilter, false, false, $arSelect);
	while ($ob = $res->GetNext()){
		
		$value = $ob;
		
	}
	
$arResult["ITEMS"][$key]["SECTION_NAME"][] = $value; 

}
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
@kacheleff
fullstack developer
Несколько моментов, не относящихся напрямую к вопросу:
1. Запросы в цикле - плохо. Всегда избегайте этого.
2. DESK - неправильное направление сортировки. Правильно DESC.

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

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

Похожие вопросы