Битрикс: Группировка элементов по разделу (группировка новостей по разделам bitrix)

Что бы выводить элементы и разделы в месте с группировкой по разделу, в компоненте news.list
папке нашем шаблоне компонента news.list создаем файле result_modifier.php и пишем следующий код

В созданном файле result_modifier.php пишем
<?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 делаем вывод
<table style="width:100%;">
<?foreach($arResult["ITEMS"] as $arSecElItem):?>

	<? if(!empty($arSecElItem['ELEMENTS'])):?>
		
		<tr><td><h3><?echo $arSecElItem['NAME']?></h3></td></tr>	
		<tr>
		<td>
		   <? if(!empty($arSecElItem['ELEMENTS'])):?>
			<table class="table">
			<? foreach($arSecElItem['ELEMENTS'] as $arItem):?>
			
			<?
			if(!empty($arItem["PREVIEW_PICTURE"]["SRC"])){
				$image = $arItem["PREVIEW_PICTURE"]["SRC"];
			}else{
				$image = SITE_TEMPLATE_PATH."/images/nophoto.png";
			}
			?>
			<tr>
			<td style="width:200px;"><a class="fancybox image" rel="group" href="<?=$image?>"><img style="width:200px;" src="<?=$image?>" alt="<?=$arItem["NAME"]?>"/></a></td>
			<td> 
			<p><b><h4><?echo $arItem["NAME"]?></h4></b></p>
			<p><?echo $arItem["PREVIEW_TEXT"]?></p>
			</td>
			</tr>				
			<? endforeach ?>
			</table>
			<? endif ?>
		</td>
		</tr>
		
	<? endif ?>
<?endforeach;?>
</table>

<?if($arParams["DISPLAY_BOTTOM_PAGER"]):?>
	<br /><?=$arResult["NAV_STRING"]?>
<?endif;?>


Битрикс: Группировка элементов по разделу (группировка новостей по разделам bitrix)