- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/lib/ical/incomingeventmanager.php
- Класс: BitrixCalendarICalIncomingEventManager
- Вызов: IncomingEventManager::updateEvent
static function updateEvent(array $event, $userId, $answer): array
{
if (isset($event['DATE_FROM']))
{
$event['DATE_FROM_MAIL'] = $event['SKIP_TIME']
? static::getDateString($event['DATE_FROM'])
: static::getDateTimeString($event['DATE_FROM']);
$event['DATE_FROM'] = static::getDateTimeString($event['DATE_FROM']);
}
if (isset($event['DATE_TO']))
{
$event['DATE_TO'] = static::getDateTimeString($event['DATE_TO']);
}
if (isset($event['DATE_CREATE']))
{
$event['DATE_CREATE'] = static::getDateTimeString($event['DATE_CREATE']);
}
if (isset($event['TIMESTAMP_X']))
{
$event['TIMESTAMP_X'] = static::getDateTimeString($event['TIMESTAMP_X']);
}
if (isset($event['DT_STAMP']))
{
$event['DT_STAMP'] = static::getDateTimeString($event['DT_STAMP']);
}
if (isset($event['TZ_FROM']))
{
$event['TZ_FROM'] = static::getTimezoneNameString($event['TZ_FROM']);
}
if (isset($event['TZ_TO']))
{
$event['TZ_TO'] = static::getTimezoneNameString($event['TZ_TO']);
}
$event['OWNER_ID'] = $userId;
$event['MEETING_HOST'] = ICalUtil::getUserIdByEmail($event['ORGANIZER_MAIL']);
$event['IS_MEETING'] = 1;
$event['SECTION_CAL_TYPE'] = 'user';
$event['ATTENDEES_CODES'] = ['U'.$event['OWNER_ID'], 'U'.$event['MEETING_HOST']];
$event['MEETING_STATUS'] = $answer === 'confirmed' ? 'Y' : 'N';
if (empty($event['ACCESSIBILITY']))
{
$event['ACCESSIBILITY'] = 'free';
}
if (empty($event['IMPORTANCE']))
{
$event['IMPORTANCE'] = 'normal';
}
if (empty($event['STATUS']))
{
$event['STATUS'] = $answer === 'ACCEPT' ? 'CONFIRMED' : 'CANCELLED';
}
if (empty($event['REMIND']))
{
$event['REMIND'] = [
'type' => 'min',
'count' => '15'
];
}
if (empty($event['MEETING']))
{
$event['MEETING'] = [
'HOST_NAME' => $event['ORGANIZER_MAIL']['name'],
'NOTIFY' => 1,
'REINVITE' => 0,
'ALLOW_INVITE' => 0,
'MEETING_CREATOR' => $event['MEETING_HOST'],
'EXTERNAL_TYPE' => 'mail',
];
}
$originalValue = ICalUtil::getEventByUId($userId, $event['DAV_XML_ID']);
$event['ID'] = $originalValue ? $originalValue['ID'] : 0;
return $event;
}