Часто в Bitrix необходимо получить полную структуру секций каталога (разделов), для этого достаточно воспользоваться кодом ниже:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
$arFilter = array( 'ACTIVE' => 'Y', 'IBLOCK_ID' => 4,//ИД инфоблока товаров 'GLOBAL_ACTIVE' => 'Y', ); $arSelect = array('IBLOCK_ID', 'ID', 'NAME', 'DEPTH_LEVEL', 'IBLOCK_SECTION_ID'); $arOrder = array('DEPTH_LEVEL' => 'ASC', 'SORT' => 'ASC'); $rsSections = CIBlockSection::GetList($arOrder, $arFilter, false, $arSelect); $sectionLinc = array(); $arResult['ROOT'] = array(); $sectionLinc[0] = &$arResult['ROOT']; while ($arSection = $rsSections->GetNext()) { $sectionLinc[(int) $arSection['IBLOCK_SECTION_ID']]['CHILD'][$arSection['ID']] = $arSection; $sectionLinc[$arSection['ID']] = &$sectionLinc[(int) $arSection['IBLOCK_SECTION_ID']]['CHILD'][$arSection['ID']]; } unset($sectionLinc); $arResult['ROOT'] = $arResult['ROOT']['CHILD']; //Показать результат echo '<pre>'; print_r($arResult); echo '</pre>'; |
На момент написания заметки — код тестировался на CMS Bitrix 18.6
Выражаю огромную благодарность за код!
Спасибо, рады что помогло