Битрикс. Вывод разделов и элементов news.list

Добавляем на страницу компонент bitrix.news.list, копируем его для дальнейшей работы.

В директории компонента убираем все лишнее. В моем случае остался файл template.php и все.

Создаем файл result_modifier.php. Соответственно добавляем:

// Вывод разделов и элементов
// Получаю разделы
$dbResSect = CIBlockSection::GetList(
   Array("SORT"=>"ASC"),
   Array("IBLOCK_ID"=>$arParams['IBLOCK_ID'])
);

//Получаю разделы и собираю их в массив
while($sectRes = $dbResSect->GetNext())
{
 $arSections[] = $sectRes;
}

//Собираю массив из Разделов и элементов
foreach($arSections as $arSection){   
 foreach($arResult["ITEMS"] as $key=>$arItem){  
   if($arItem['IBLOCK_SECTION_ID'] == $arSection['ID']){
   $arSection['ELEMENTS'][] =  $arItem;
   }
 } 
 $arElementGroups[] = $arSection; 
}

$arResult["ITEMS"] = $arElementGroups;

Теперь переходим к файлу template.php. Здесь все будем выводить:


<?foreach($arResult["ITEMS"] as $arSectItem): //Цикл для вывода категорий?>
<?if(!empty($arSectItem['ELEMENTS'])):?>

<h3><?echo $arSectItem['NAME']?></h3>

      <? if(!empty($arSectItem['ELEMENTS'])):?>
			
	<?foreach($arSectItem['ELEMENTS'] as $arItem): //Цикл для элементов?>
            <p><?echo $arItem["NAME"]?></p>
            <?echo $arItem["PREVIEW_TEXT"]?>
	    <?/* Любые свойства элементов */?>	
        <?endforeach;?>

      <?endif;?>

<?endif;?>
<?endforeach;?>

Добавляем свою разметку по верстке. Чистим кэш компонента. Готово.

Количество просмотров: 137


Понравилась статья?

Возврат к списку