• Модуль: 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;
}