Каким образом можно получить доступ к главному разделу информационного блока и его содержимому?

Каким способом можно вывести основной раздел информационного блока и все его элементы из подразделов без особых сложностей?
  • 18 апреля 2024 г. 18:20
Ответы на вопрос 2
Для доступа к главному разделу информационного блока и его содержимому, можно воспользоваться API или использовать стандартные методы работы с информационными блоками в CMS. 

Для вывода основного раздела информационного блока и его элементов из подразделов можно воспользоваться функцией GetList() с указанием ID раздела (или корневого раздела) и параметром recursive=true. Этот параметр позволит вывести все элементы из указанного раздела и его подразделов. 

Пример использования:

```php
$iblockId = 1; // ID информационного блока
$sectionId = 10; // ID раздела (или корневого раздела)

$arFilter = array(
    'IBLOCK_ID' => $iblockId,
    'SECTION_ID' => $sectionId,
    'ACTIVE' => 'Y'
);

$arSelect = array('ID', 'NAME', 'DETAIL_PAGE_URL');

$res = CIBlockElement::GetList(array('SORT' => 'ASC'), $arFilter, false, false, $arSelect);

while ($ob = $res->GetNextElement()) {
    $arFields = $ob->GetFields();
    echo $arFields['NAME'] . '<br>';
    echo $arFields['DETAIL_PAGE_URL'] . '<br>';
}
``` 

Этот код выведет название и ссылку на детальную страницу для всех элементов из указанного раздела и его подразделов.
Возможно кому-то и пригодится, пи желании можно вынести и так более правильно вынести в result_modifier.php 

<?
CModule::IncludeModule('iblock');

$sectRes = CIBlockSection::GetList(
  array("SORT" => "ASC"), // сортировка
  array("IBLOCK_ID" => 29, "DEPTH_LEVEL" => 1, "ACTIVE" => "Y"), // параметры фильтра
  false, // возврат кол-ва элементов в разделе
  array('ID', 'NAME', 'PICTURE', 'SECTION_PAGE_URL', 'UF_WIDTH_SECTION', 'UF_URL_SECTION'), // поля для выборки
  false // параметры постраничной навигации
 );
  while ($arSect = $sectRes->GetNext())?>

//Здесь можно вывести news.list, передав в параметр компонента "PARENT_SECTION" => $arSect['ID']
// В таком варианте можно вывести основные разделы и элементы находящиеся в подразделах
<? } ?>
Похожие вопросы