...Человеческий поиск в разработке...
- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/lib/core/builders/eventbuilderfromentityobject.php
- Класс: BitrixCalendarCoreBuildersEventBuilderFromEntityObject
- Вызов: EventBuilderFromEntityObject::getReminders
protected function getReminders(): RemindCollection { $remindField = $this->event->getRemind(); if (is_string($remindField)) { $remindField = unserialize($remindField, ['allowed_classes' => false]); } if (!is_array($remindField)) { return new RemindCollection(); } $eventStart = $this->getStart(); $collection = new RemindCollection(); $collection->setEventStart($eventStart); foreach ($remindField as $remind) { if ($remind['type'] === EventToolsDictionary::REMIND_UNIT['date']) { $collection->add((new EventPropertiesRemind()) ->setSpecificTime( new Date(Util::getDateObject( $remind['value'], false, $this->getStartTimezone() )) ) ->setEventStart($eventStart) ); } elseif ($remind['type'] === EventPropertiesRemind::UNIT_DAY_BEFORE) { $collection->add((new EventPropertiesRemind()) ->setEventStart($eventStart) ->setSpecificTime( (new Date(Util::getDateObject( $eventStart->toString(), false, $this->getStartTimezone()) )) ->resetTime() ->sub("{$remind['before']} days") ->add("{$remind['time']} minutes") ) ->setDaysBefore($remind['before']) ); } else { $collection->add((new EventPropertiesRemind()) ->setTimeBeforeEvent( $remind['count'], EventToolsDictionary::REMIND_UNIT[$remind['type']] ) ->setEventStart($eventStart) ); } } return $collection; }