3namespace Bitrix\Calendar\OpenEvents\Service;
5use Bitrix\Calendar\Event\Service\OpenEventPullService;
6use Bitrix\Calendar\Internals\Counter\CounterService;
7use Bitrix\Calendar\Internals\Counter\Event\EventDictionary;
8use Bitrix\Calendar\Core\Event\Event;
9use Bitrix\Calendar\Core\Mappers\Factory;
10use Bitrix\Calendar\Integration\Im\OpenEventService as ImIntegration;
11use Bitrix\Main\DI\ServiceLocator;
15 private static ?
self $instance;
19 self::$instance ??=
new self();
21 return self::$instance;
26 $event = $this->getEventById($eventId);
28 ImIntegration::getInstance()->updateCalendarEventMessage(
$event);
29 OpenEventPullService::getInstance()->updateCalendarEvent(
$event);
37 $eventsByCategory = [];
39 foreach ($eventIds as $eventId)
41 $categoryId = $this->getEventById($eventId)->getEventOption()->getCategoryId();
42 $eventsByCategory[$categoryId][] = $eventId;
45 CounterService::addEvent(EventDictionary::OPEN_EVENT_SEEN, [
46 'categories' => $eventsByCategory,
51 private function getEventById(
int $eventId):
Event
54 $mapperFactory = ServiceLocator::getInstance()->get(
'calendar.service.mappers.factory');
56 return $mapperFactory->getEvent()->getById($eventId);
59 private function __construct()
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
onOpenEventEdited(int $eventId)
setEventsWatched(int $userId, array $eventIds)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)