Для вывода списка новостей по разделам с главным разделом "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' на код информационного блока новостей, с которым вы работаете.
Приведенный выше код позволяет вывести список новостей по разделам с использованием шаблона компонента. Разделы выводятся в виде заголовков, а каждая новость выводится в виде списка.