- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar.php
- Класс: CCalendar
- Вызов: CCalendar::GetSectionList
static function GetSectionList($params = [])
{
$type = $params['CAL_TYPE'] ?? self::$type;
$arFilter = [
'CAL_TYPE' => $type,
];
if (isset($params['OWNER_ID']))
{
$arFilter['OWNER_ID'] = $params['OWNER_ID'];
}
elseif ($type === 'user' || $type === 'group')
{
$arFilter['OWNER_ID'] = self::GetOwnerId();
}
if (isset($params['ACTIVE']))
{
$arFilter['ACTIVE'] = $params['ACTIVE'];
}
if (isset($params['ADDITIONAL_IDS']) && !empty($params['ADDITIONAL_IDS']))
{
$arFilter['ADDITIONAL_IDS'] = $params['ADDITIONAL_IDS'];
}
$sectionList = CCalendarSect::GetList([
'arFilter' => $arFilter,
'checkPermissions' => ($params['checkPermissions'] ?? null),
'getPermissions' => ($params['getPermissions'] ?? null),
]);
if ($type === 'user')
{
$sectionIdList = [];
foreach ($sectionList as $section)
{
$sectionIdList[] = (int)$section['ID'];
}
$sectionLinkList = SectionConnectionTable::getList([
'select' => [
'SECTION_ID',
'CONNECTION_ID',
'ACTIVE',
'IS_PRIMARY',
],
'filter' => [
'=SECTION_ID' => $sectionIdList,
],
])->fetchAll();
if (!empty($sectionLinkList))
{
foreach ($sectionList as $i => $section)
{
$sectionList[$i]['connectionLinks'] = [];
foreach ($sectionLinkList as $sectionLink)
{
if ((int)$sectionLink['SECTION_ID'] === (int)$section['ID'])
{
$sectionList[$i]['connectionLinks'][] = [
'id' => $sectionLink['CONNECTION_ID'],
'active' => $sectionLink['ACTIVE'],
'isPrimary' => $sectionLink['IS_PRIMARY'],
];
}
};
}
}
}
if (($params['getImages'] ?? null))
{
$sectionList = self::fetchIconsForSectionList($sectionList);
}
return $sectionList;
}