- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar_sync.php
- Класс: CCalendarSync
- Вызов: CCalendarSync::GetMultipleSyncInfoItem
static function GetMultipleSyncInfoItem($userId, $syncType): array
{
$activeSyncPeriod = 604800; // 3600 * 24 * 7 - one week
$syncTypes = ['outlook'];
$lastSync = null;
$result = [
'connected' => false,
'status' => false,
'syncOffset' => $activeSyncPeriod
];
if (in_array($syncType, $syncTypes, true))
{
$options = CUserOptions::GetOption("calendar", "last_sync_".$syncType, false, $userId);
}
if ($options !== false)
{
if (is_array($options))
{
foreach ($options as $key => &$date)
{
$dateTs = CCalendar::Timestamp($date, false);
$period = time() - $dateTs;
if ($dateTs > $lastSync)
{
$lastSync = $dateTs;
}
if ($period <= $activeSyncPeriod)
{
$result['connected'] = true;
$result['status'] = true;
$result['syncOffset'] = $period;
}
}
$result['infoBySections'] = $options;
}
else
{
$lastSync = CCalendar::Timestamp($options, false);
$period = time() - $lastSync;
if ($period <= $activeSyncPeriod)
{
$result['connected'] = true;
$result['status'] = true;
$result['syncOffset'] = $period;
}
}
}
return $result;
}