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