- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/lib/integration/dav/syncadapter.php
- Класс: BitrixCalendarIntegrationDavSyncAdapter
- Вызов: SyncAdapter::getEventList
static function getEventList($sectionId = false, $params = [])
{
$entryList = [];
if ($params['entityType'] === 'user')
{
$userId = $params['entityId'];
if ($sectionId === CCalendar::TASK_SECTION_ID)
{
$entryList = self::getTaskList($userId);
}
else
{
CCalendar::SetOffset(false, 0);
$filter = [
'DELETED' => 'N'
];
if (isset($params['filter']['DAV_XML_ID']))
{
$filter['DAV_XML_ID'] = $params['filter']['DAV_XML_ID'];
}
else
{
if (isset($params['filter']['DATE_START']))
{
$filter['FROM_LIMIT'] = $params['filter']['DATE_START'];
}
if (isset($params['filter']['DATE_END']))
{
$filter['TO_LIMIT'] = $params['filter']['DATE_END'];
}
}
if ($sectionId > 0)
{
$filter['SECTION'] = $sectionId;
}
$events = CCalendarEvent::GetList(
array(
'arFilter' => $filter,
'getUserfields' => false,
'parseRecursion' => false,
'fetchAttendees' => false,
'fetchMeetings' => !$sectionId || CCalendar::getMeetingSection($userId, true) == $sectionId,
'userId' => $userId
)
);
foreach ($events as $event)
{
// Skip events from where owner is host of the meeting and it's meeting from other section
// or declined events
if($event['IS_MEETING'] && ($event["MEETING_STATUS"] == 'N' || ($event['MEETING_HOST'] == $userId && $event['SECTION_ID'] != $sectionId)))
{
continue;
}
$event['XML_ID'] = $event['DAV_XML_ID'];
$event['LOCATION'] = CCalendar::GetTextLocation($event['LOCATION']);
$event['RRULE'] = CCalendarEvent::ParseRRULE($event['RRULE']);
$entryList[] = $event;
}
}
}
return $entryList;
}