Получить все разделы и подразделы на сайте Bitrix | PROG-TIME

Получить все разделы и подразделы на сайте Bitrix

19.09.2021
Содержание:

В новой записи я вам покажу как получить список всех разделов и подразделов в Bitrix. Это не самый лучший способ для использования в работе, так как здесь производится запрос в запросе, а это большая нагрузка на ресурсы сайта.

Я данный код использую для разового получения информации по разделам, например чтобы получить ссылки для подразделов из определенного родительского раздела.

Для указания родителя пропишите id данного родителя для SECTION_ID в качестве параметра для CIBlockSection::GetList.


/* ================================ */
/* ПОЛНЫЙ СПИСОК ПОДРАЗДЕЛОВ УКАЗАННОГО РАЗДЕЛА */
/* ================================ */
/* 

IBLOCK_ID - id инфоблока
SECTION_ID - id раздела родителя

*/
$rsParentSection = CIBlockSection::GetList(
	Array('name' => 'asc'),
	Array('IBLOCK_ID' => 5, 'SECTION_ID' => 341, 'ACTIVE' => 'Y')
);

while ($arParentSection = $rsParentSection->GetNext()) {

    $arrFullListSection[] = $arParentSection["SECTION_PAGE_URL"];

	$arFilter = array(
        'IBLOCK_ID' => $arParentSection['IBLOCK_ID'],
        '>LEFT_MARGIN' => $arParentSection['LEFT_MARGIN'],
        '<RIGHT_MARGIN' => $arParentSection['RIGHT_MARGIN'],
        '>DEPTH_LEVEL' => $arParentSection['DEPTH_LEVEL']
    );

    /* делаем запрос внутри запроса по id подраздела */
	$rsSect = CIBlockSection::GetList(array('left_margin' => 'asc'), $arFilter);

	while ($arSect = $rsSect->GetNext()){
        $arrFullListSection[] = $arSect["SECTION_PAGE_URL"];
	}
}


foreach($arrFullListSection as $section) {
    $strListSection .= $section."\n";
}


/* ================================ */
/* ================================ */

В моём случает я получаю ссылки (SECTION_PAGE_URL) для подразделов, чтобы в дальнейшем настроить редиректы для них. Приятного использования!

На этом всё!
Больше интересных статей в нашей группе - https://vk.com/progtime
Вы так же можете разместить свой вопрос на нашем форуме, где другие программисты смогут вам помочь в решение вашей задачи - https://vk.com/prog_time
Так же прокачивайте свои навыки на нашем канале - https://www.youtube.com/c/ProgTime
Наши планы
  • Написание материала для курса по разработке ботов на Telegram
  • Разработка универсального парсера на PHP

Поддержите мой сайт!

Каждый переведённый донат, мотивирует на создание новых записей и уроков на YouTube