Как вывести список новостей по разделам с главным разделом bitrix.news.list?

Для вывода списка новостей по разделам с главным разделом "bitrix.news.list" в 1C-Bitrix, вам понадобится использовать компонент "bitrix:news.list". Вот подробное объяснение, как это сделать:

1. Создайте шаблон компонента:
- В папке /bitrix/templates/ создайте новую папку для вашего шаблона (например, "my_template").
- Внутри папки шаблона создайте файл с именем template.php.

2. В файле template.php добавьте следующий код:

   <?php
   if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) {
       die();
   }

   $arResult['ITEMS'] = array();
   $arFilter = array(
       'IBLOCK_TYPE' => 'news',
       'IBLOCK_CODE' => 'your_iblock_code', // Замените на ваш код информационного блока новостей
       'ACTIVE' => 'Y',
   );

   $rsSections = CIBlockSection::GetList(
       array('SORT' => 'ASC'),
       $arFilter,
       false,
       array('ID'),
       false
   );

   while ($arSection = $rsSections->GetNext()) {
       $arFilter = array(
           'IBLOCK_TYPE' => 'news',
           'IBLOCK_CODE' => 'your_iblock_code',
           'ACTIVE' => 'Y',
           'SECTION_ID' => $arSection['ID'],
       );

       $arResult['ITEMS'][$arSection['ID']] = array(
           'SECTION' => $arSection,
           'NEWS' => array(),
       );

       $rsNews = CIBlockElement::GetList(
           array('DATE_ACTIVE_FROM' => 'DESC'),
           $arFilter,
           false,
           false,
           array('ID', 'NAME', 'DATE_ACTIVE_FROM')
       );

       while ($arNews = $rsNews->GetNext()) {
           $arResult['ITEMS'][$arSection['ID']]['NEWS'][] = $arNews;
       }
   }

   $this->IncludeComponentTemplate();
   ?>

3. Создайте файл с описанием вашего компонента в папке /bitrix/components/my/components/. Создайте файл .parameters.php с содержимым:

   <?php
   if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) {
       die();
   }

   $arComponentParameters = array(
       'PARAMETERS' => array(
           'CACHE_TIME' => Array('DEFAULT' => 3600),
       ),
   );

4. Создайте файл шаблона компонента в папке /bitrix/components/my/components/templates/. Создайте файл .default/template.php с следующим содержимым:

   <?php
   if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) {
       die();
   }

   foreach ($arResult['ITEMS'] as $arSection) {
       echo '<h2>' . $arSection['SECTION']['NAME'] . '</h2>';
       echo '<ul>';

       foreach ($arSection['NEWS'] as $arNews) {
           echo '<li>' . $arNews['NAME'];
           echo ' - ' . $arNews['DATE_ACTIVE_FROM'] . '</li>';
       }

       echo '</ul>';
   }

5. Теперь вы можете использовать ваш компонент в любом месте на сайте. Пример вызова компонента:

   <?php
   $APPLICATION->IncludeComponent(
       'my:components',
       '',
       array(),
       false
   );

Замените 'your_iblock_code' на код информационного блока новостей, с которым вы работаете.

Приведенный выше код позволяет вывести список новостей по разделам с использованием шаблона компонента. Разделы выводятся в виде заголовков, а каждая новость выводится в виде списка.