Skip to content

Instantly share code, notes, and snippets.

@eagles038
Created August 27, 2023 07:18
Show Gist options
  • Select an option

  • Save eagles038/3e247d014e43e9437f8c698a399bd7e7 to your computer and use it in GitHub Desktop.

Select an option

Save eagles038/3e247d014e43e9437f8c698a399bd7e7 to your computer and use it in GitHub Desktop.
Битрикс – Построить навигацию для разделов и подразделов
$rsSect = CIBlockSection::GetList(
array(),
array('IBLOCK_ID' => $arParams["IBLOCK_ID"], '=CODE' => $arResult['VARIABLES']['SECTION_CODE']),
false,
array('ID', 'NAME', 'DEPTH_LEVEL', 'SECTION_PAGE_URL')
);
if ( $arSect = $rsSect->GetNext() ) {
$SEC_LVL = $arSect['DEPTH_LEVEL'];
$SEC_NAME = $arSect['NAME'];
$SEC_URL = $arSect['SECTION_PAGE_URL'];
}
if ($SEC_LVL >= 2) {
$rsSect = CIBlockSection::GetList(
array(),
array('IBLOCK_ID' => $arParams["IBLOCK_ID"], '=CODE' => $arResult['VARIABLES']['SECTION_CODE']),
false,
array('ID', 'NAME', 'SECTION_PAGE_URL')
);
while ( $arSect2 = $rsSect->GetNext() ) {
$SEC_NAME = $arSect2['NAME'];
$SEC_URL = $arSect2['SECTION_PAGE_URL'];
break;
}
$result = array();
$ibsTreeResource = CIBlockSection::GetNavChain( false, $arSect2['ID'], array( "ID", "NAME") );
$c = 0;
while($sectionItem = $ibsTreeResource->Fetch()){
$result[$c]['NAME'] = $sectionItem['NAME'];
$res = CIBlockSection::GetByID($sectionItem["ID"]);
if($ar_res = $res->GetNext()) {
$url = $ar_res['SECTION_PAGE_URL'];
}
$result[$c]['URL'] = $url;
$c++;
}
foreach ($result as $arItem) {
$APPLICATION->AddChainItem($arItem['NAME'], $arItem['URL']);
}
} else {
$APPLICATION->AddChainItem($SEC_NAME, $SEC_URL);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment