Skip to content

Instantly share code, notes, and snippets.

@morozVA
Created January 3, 2018 14:56
Show Gist options
  • Select an option

  • Save morozVA/27d51d9000a3ab75f4fc6425221f515f to your computer and use it in GitHub Desktop.

Select an option

Save morozVA/27d51d9000a3ab75f4fc6425221f515f to your computer and use it in GitHub Desktop.
bitrix Получить имя или ID раздела по SECTION_CODE в Битрикс
Сначала получаем id нашего раздела. Для этого воспользуемся очень удобным, но не документированным (ох уж этот Битрикс) классом CIBlockFindTools и его методом GetSectionID. В section.php перед выводом нашего заголовка пишем:
$arResult["SECTION_ID"] = CIBlockFindTools::GetSectionID(
$arResult["VARIABLES"]["SECTION_ID"],
$arResult["VARIABLES"]["SECTION_CODE"],
array("IBLOCK_ID" => $arParams["IBLOCK_ID"])
);
$sResult = CIBlockSection::GetByID($arResult["SECTION_ID"]);
if($sArResult = $sResult->GetNext())
Можно вывести и не имя, а любое другое поле, например UF_TITLE =)
Значит для получения любого поля раздела инфоблока нам достаточно знать только SECTION_CODE нужного инфоблока. Данный код работает при включенном ЧПУ и уникальности символьного кода раздела.
$arResult["ELEMENT_ID"] = CIBlockFindTools::GetElementID(
$arResult["VARIABLES"]["ELEMENT_ID"],
$arResult["VARIABLES"]["ELEMENT_CODE"],
false,
false,
array(
"IBLOCK_ID" => $arParams["IBLOCK_ID"],
"IBLOCK_LID" => SITE_ID,
"IBLOCK_ACTIVE" => "Y",
"ACTIVE_DATE" => "Y",
"ACTIVE" => "Y",
"CHECK_PERMISSIONS" => "Y",
)
);
А так можно получить количество подразделов в разделе
$arFilter = Array(
"IBLOCK_ID"=>$arParams['IBLOCK_ID'],
"SECTION_ID"=>$arResult["SECTION_ID"]
);
echo CIBlockSection::GetCount($arFilter);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment