- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar_sync.php
- Класс: CCalendarSync
- Вызов: CCalendarSync::getLocalEventsList
static function getLocalEventsList($localCalendar, $externalEventsGEventId)
{
$eventsDb = InternalsEventTable::query()
->where('SECTION_ID', $localCalendar['ID'])
->whereIn('G_EVENT_ID', $externalEventsGEventId)
->setSelect([
"ID",
"CAL_TYPE",
"DT_SKIP_TIME",
"DATE_FROM",
"DATE_TO",
"TZ_FROM",
"TZ_TO",
"PARENT_ID",
"IS_MEETING",
"MEETING_STATUS",
"MEETING",
"LOCATION",
"RRULE",
"EXDATE",
"DAV_XML_ID",
"RECURRENCE_ID",
"G_EVENT_ID",
"ATTENDEES_CODES",
"OWNER_ID",
])->exec();
$eventList = [];
while ($event = $eventsDb->fetch())
{
if (!static::$attendeeList[$event['PARENT_ID']])
{
static::$attendeeList[$event['PARENT_ID']] = !CCalendarEvent::getAttendeeList($event['PARENT_ID'])
?: CCalendarEvent::getAttendeeList($event['PARENT_ID'])['attendeeList'][$event['PARENT_ID']];
}
if (is_array(static::$attendeeList[$event['PARENT_ID']]))
{
$event['ATTENDEES'] = array_column(static::$attendeeList[$event['PARENT_ID']], 'id');
}
if (is_string($event['MEETING']))
{
$event['MEETING'] = unserialize($event['MEETING'], ['allowed_classes' => false]);
}
if (!empty($event['G_EVENT_ID']))
{
$eventList[$event['G_EVENT_ID']] = $event;
}
elseif (!empty($event['DAV_XML_ID']))
{
$eventList[str_replace('@google', '',$event['DAV_XML_ID'])] = $event;
}
}
return $eventList;
}