- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar_sync.php
- Класс: CCalendarSync
- Вызов: CCalendarSync::GetSyncInfo
static function GetSyncInfo($params = [])
{
$userId = CCalendar::getCurUserId();
$macSyncInfo = self::GetSyncInfoItem($userId, 'mac');
$iphoneSyncInfo = self::GetSyncInfoItem($userId, 'iphone');
$androidSyncInfo = self::GetSyncInfoItem($userId, 'android');
$outlookSyncInfo = self::GetMultipleSyncInfoItem($userId, 'outlook');
$exchangeSyncInfo = self::GetSyncInfoItem($userId, 'exchange');
$bExchangeConnected = false;
$bExchange = false;
if (Loader::includeModule('dav'))
{
$bExchange = CCalendar::IsExchangeEnabled() && $params['type'] === 'user';
$bExchangeConnected = $bExchange && CDavExchangeCalendar::IsExchangeEnabledForUser($userId);
}
$calculateTimestamp = self::getTimestampWithUserOffset($userId);
$syncInfo = [
'mac' => [
'type' => 'mac',
'active' => true,
'connected' => $macSyncInfo['connected'],
'status' => $macSyncInfo['status'],
'syncOffset' => time() - $calculateTimestamp($macSyncInfo['date']),
],
'iphone' => [
'type' => 'iphone',
'active' => true,
'connected' => $iphoneSyncInfo['connected'],
'status' => $iphoneSyncInfo['status'],
'syncOffset' => time() - $calculateTimestamp($iphoneSyncInfo['date']),
],
'android' => [
'type' => 'android',
'active' => true,
'connected' => $androidSyncInfo['connected'],
'status' => $androidSyncInfo['status'],
'syncOffset' => time() - $calculateTimestamp($androidSyncInfo['date']),
],
'outlook' => [
'type' => 'outlook',
'active' => true,
'connected' => $outlookSyncInfo['connected'],
'status' => $outlookSyncInfo['status'],
'infoBySections' => ($outlookSyncInfo['infoBySections'] ?? ''),
'syncOffset' => time() - $calculateTimestamp($outlookSyncInfo['date'] ?? false),
],
];
if (!Loader::includeModule('bitrix24'))
{
$syncInfo['exchange'] = [
'type' => 'exchange',
'active' => $bExchange,
'connected' => $bExchangeConnected,
'status' => $exchangeSyncInfo['status'],
'syncOffset' => time() - $calculateTimestamp($exchangeSyncInfo['date']),
];
}
$caldavConnections = self::GetCaldavItemsInfo($userId, $params['type'], $calculateTimestamp);
if (is_array($caldavConnections))
{
$syncInfo = array_merge($syncInfo, $caldavConnections);
}
return $syncInfo;
}