• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sync/googleapisync.php
  • Класс: BitrixCalendarSyncGoogleApiSync
  • Вызов: GoogleApiSync::prepareRemind
private function prepareRemind($eventData): array
{
	$reminders = [];
	$reminders['useDefault'] = false;
	$reminders['overrides'] = [];

	if (!is_iterable($eventData['REMIND']))
	{
		return [];
	}

	foreach ($eventData['REMIND'] as $remindRule)
	{
		$minutes = $remindRule['count'];
		if ($remindRule['type'] === 'hour')
		{
			$minutes = 60 * $remindRule['count'];
		}
		elseif ($remindRule['type'] === 'day')
		{
			$minutes = 24 * 60 * $remindRule['count'];
		}
		elseif ($remindRule['type'] === 'daybefore')
		{
			$dateFrom = Util::getDateObject(
				$eventData['DATE_FROM'],
				$eventData['DT_SKIP_TIME'] === 'Y',
				$eventData['TZ_FROM']
			);

			$remind = clone $dateFrom;
			if (method_exists($remind, 'setTime'))
			{
				$remind->setTime(0, 0, 0);
			}
			$remind->add("-{$remindRule['before']} days")->add("{$remindRule['time']} minutes");

			if ($dateFrom->getTimestamp() < $remind->getTimestamp())
			{
				continue;
			}

			$minutes = $this->calculateMinutes($dateFrom, $remind);
		}
		elseif ($remindRule['type'] === 'date')
		{
			$dateFrom = Util::getDateObject(
				$eventData['DATE_FROM'],
				$eventData['DT_SKIP_TIME'] === 'Y',
				$eventData['TZ_FROM']
			);
			$remind = Util::getDateObject(
				$remindRule['value'],
				$eventData['DT_SKIP_TIME'] === 'Y',
				$eventData['TZ_FROM']
			);

			if ($dateFrom->getTimestamp() < $remind->getTimestamp())
			{
				continue;
			}

			$minutes = $this->calculateMinutes($dateFrom, $remind);
		}

		$reminders['overrides'][] = [
			'minutes' => $minutes,
			'method' => 'popup',
		];
	}

	return $reminders;
}