<?
\Bitrix\Main\Loader::includeModule('iblock');
//Получение полей раздела
$arSection = \Bitrix\Iblock\SectionTable::getById($SECTION_ID)->fetch();
// Выборка разделов инфоблока средствами класса \Bitrix\Iblock\SectionTable
$rsSection = \Bitrix\Iblock\SectionTable::getList([
'filter' => [
'IBLOCK_ID' => IBLOCK_ID,
"ACTIVE" => "Y",
"GLOBAL_ACTIVE" => "Y"
],
'select' => ['ID', 'NAME'],
]);
while ($arSection = $rsSection->fetch())
$arSections[$arSection['ID']] = $arSection['NAME'];
// Выбрать всех руководителей
$sectionEntity = \Bitrix\Iblock\Model\Section::compileEntityByIblock($structureIblockId);
$rsSection = $sectionEntity::getList([
'filter' => [
'IBLOCK_ID' => $structureIblockId,
'ACTIVE' => 'Y',
'GLOBAL_ACTIVE' => 'Y',
'NAME' => 'Командор%К-'.$shopNumber,
],
'select' => ['ID', 'LEFT_MARGIN', 'RIGHT_MARGIN', 'DEPTH_LEVEL', 'UF_HEAD'],
'cache' => ['ttl', 86400],
]);
if ($arSection = $rsSection->fetch())
{
$arSections[] = $arSection['UF_HEAD'];
}
//Выборка активных разделов инфоблока, отсортированный для построения дерева разделов
$rsSection = \Bitrix\Iblock\SectionTable::getList([
'order' => ['LEFT_MARGIN' => 'ASC'],
'filter' => [
'IBLOCK_ID' => $IBLOCK_ID,
'DEPTH_LEVEL' => 1,
"IBLOCK_SECTION_ID" => $SECTION_ID,
"ACTIVE" => "Y",
"GLOBAL_ACTIVE" => "Y"
],
'select' => ['ID', 'CODE', 'NAME', 'UF_TEXT'],
'cache' => ['ttl', 86400],
]);
while ($arSection = $rsSection->fetch())
{
print_r($arSection);
}
//Выборка дерева активных разделов инфоблока
$arSection = \Bitrix\Iblock\SectionTable::getById($rootSectionId)->fetch();
if ($arSection)
{
$rsSection = \Bitrix\Iblock\SectionTable::getList([
'order' => ['LEFT_MARGIN' => 'ASC'],
'filter' => [
'IBLOCK_ID' => $arResult["IBLOCK_ID"],
'ACTIVE' => 'Y',
'GLOBAL_ACTIVE' => 'Y',
'>LEFT_MARGIN' => $arSection['LEFT_MARGIN'],
'<RIGHT_MARGIN' => $arSection['RIGHT_MARGIN'],
'>DEPTH_LEVEL' => $arSection['DEPTH_LEVEL']
],
'select' => ['ID', 'NAME'],
]);
while ($arSection = $rsSection->fetch())
{
$arSections[$arSection['ID']] = $arSection['NAME'];
}
}
//Выборка дерева активных разделов инфоблока от корневого до $sectionId не включая его
$structureIblockId = intval(\Bitrix\Main\Config\Option::get('intranet', 'iblock_structure'));
$arSection = \Bitrix\Iblock\SectionTable::getById($sectionId)->fetch();
$arDepartmentChain = $sectionEntity::getList([
'filter' => [
'IBLOCK_ID' => $structureIblockId,
'ACTIVE' => 'Y',
'GLOBAL_ACTIVE' => 'Y',
'<=LEFT_MARGIN' => $arSection['LEFT_MARGIN'],
'>=RIGHT_MARGIN' => $arSection['RIGHT_MARGIN'],
'<DEPTH_LEVEL' => $arSection['DEPTH_LEVEL']
],
'select' => ['ID', 'NAME', 'UF_HEAD'],
'order' => ['LEFT_MARGIN' => 'ASC']
//'cache' => ['ttl', 86400],
])->fetchAll();
//Выборка трех случайных активных разделов уровня 1 инфоблока, получаем название раздела, а также название родительского раздела
$q = new \Bitrix\Main\Entity\Query(Bitrix\Iblock\SectionTable::getEntity());
$q->registerRuntimeField(
'RAND', ['data_type' => 'float', 'expression' => ['RAND()']]
)
->setOrder(['RAND' => 'ASC'])
->setSelect([
'ID',
'IBLOCK_ID',
'NAME',
'PARENT_SECTION_NAME'=>'PARENT_SECTION.NAME',
])
->setFilter([
'ACTIVE' => 'Y',
'GLOBAL_ACTIVE' => 'Y',
'IBLOCK_ID' => $IBLOCK_ID,
'DEPTH_LEVEL' => 1,
])
->setLimit(3);
$rsSection = $q->exec();
while ($arSection=$rsSection->fetch())
{
print_r($arSection);
}
//Выборка всех активных разделов инфоблока с получением имени и фамилии создавшего и изменившего раздел пользователей
$rsSection = \Bitrix\Iblock\SectionTable::getList([
'filter' => [
'IBLOCK_ID' => $IBLOCK_ID,
'ACTIVE' => 'Y',
'GLOBAL_ACTIVE' => 'Y',
],
'select' => [
'ID',
'NAME',
'CREATED_USER_NAME'=>'CREATED_BY_USER.NAME',
'CREATED_USER_LAST_NAME'=>'CREATED_BY_USER.LAST_NAME',
'MODIFIED_USER_NAME'=>'MODIFIED_BY_USER.NAME',
'MODIFIED_USER_LAST_NAME'=>'MODIFIED_BY_USER.LAST_NAME',
],
]);
while ($arSection = $rsSection->fetch())
{
print_r($arSection);
}
//Выборка активных разделов инфоблока с получением названия инфоблока и шаблона пути к разделу
$rsSection = \Bitrix\Iblock\SectionTable::getList([
'filter' => [
'IBLOCK_ID' => $IBLOCK_ID,
'ACTIVE' => 'Y',
'GLOBAL_ACTIVE' => 'Y',
],
'select' => [
'ID',
'NAME',
'IBLOCK_NAME' => 'IBLOCK.NAME',
'IBLOCK_SECTION_PAGE_URL' => 'IBLOCK.SECTION_PAGE_URL',
],
]);
while ($arSection = $rsSection->fetch())
{
print_r($arSection);
}