- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar.php
- Класс: CCalendar
- Вызов: CCalendar::OnDavCalendarSync
static function OnDavCalendarSync(BitrixMainEvent $event)
{
$calendarId = $event->getParameter('id');
$userAgent = mb_strtolower($event->getParameter('agent'));
$agent = false;
[$sectionId, $entityType, $entityId] = $calendarId;
$arAgentsMap = [
'android' => 'android', // Android/iOS CardDavBitrix24
'iphone' => 'iphone', // Apple iPhone iCal
'davkit' => 'mac', // Apple iCal
'mac os' => 'mac', // Apple iCal (Mac Os X > 10.8)
'mac_os_x' => 'mac', // Apple iCal (Mac Os X > 10.8)
'mac+os+x' => 'mac', // Apple iCal (Mac Os X > 10.10)
'macos' => 'mac', // Apple iCal (Mac Os X > 11)
'dataaccess' => 'iphone', // Apple addressbook iPhone
//'sunbird' => 'sunbird', // Mozilla Sunbird
'ios' => 'iphone',
];
foreach ($arAgentsMap as $pattern => $name)
{
if (mb_strpos($userAgent, $pattern) !== false)
{
$agent = $name;
break;
}
}
if ($entityType === 'user' && $agent)
{
self::SaveSyncDate($entityId, $agent);
}
}