1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
EventWithAttendeesCountForUserBuilder.php
См. документацию.
1<?php
2
3namespace Bitrix\Calendar\Event\Helper;
4
5use Bitrix\Calendar\Core\Event\Event;
6use Bitrix\Calendar\EventOption\Dto\EventOptionsDto;
7use Bitrix\Calendar\Internals\Counter;
8use Bitrix\Calendar\OpenEvents\Item\OpenEvent;
9use Bitrix\Calendar\OpenEvents\Provider;
10use Bitrix\Main\Type\DateTime;
11
13{
14 public static function buildFromEvent(
16 int $userId,
17 ?bool $isAttendee,
18 ?int $commentsCount,
19 ): OpenEvent
20 {
21 $eventOptions = $event->getEventOption();
22 $category = $eventOptions->getCategory();
23 $count = $userId === 0
24 ? null
27
28 $dateFrom = $event->getStart()->format('d.m.Y');
29 $dateTo = $event->getEnd()->format('d.m.Y');
30 $dateFromTs = (new DateTime($dateFrom, 'd.m.Y', new \DateTimeZone('UTC')))->getTimestamp();
31 $dateToTs = (new DateTime($dateTo, 'd.m.Y', new \DateTimeZone('UTC')))->getTimestamp();
32 if (!$event->isFullDayEvent())
33 {
34 $dateFromTs = $event->getStart()->getTimestamp();
35 $dateToTs = $event->getEnd()->getTimestamp();
36 }
37
38 return new OpenEvent(
39 id: $event->getId(),
40 name: $event->getName(),
41 dateFromTs: $dateFromTs,
42 dateToTs: $dateToTs,
43 isFullDay: $event->isFullDayEvent(),
44 isAttendee: $isAttendee,
45 attendeesCount: $eventOptions->getAttendeesCount(),
46 creatorId: $event->getCreator()->getId(),
47 eventOptions: EventOptionsDto::fromArray($eventOptions->getOptions()->toArray()),
48 categoryId: $eventOptions->getCategoryId(),
49 categoryName: (new Provider\CategoryProvider())->prepareCategoryName($category->getName()),
50 categoryChannelId: $category->getChannelId(),
51 color: $event->getColor() ?: $event->getSection()->getColor(),
52 commentsCount: $commentsCount,
53 threadId: $eventOptions->getThreadId(),
54 isNew: (bool)$count,
55 rrule: $event->getRecurringRule()?->toString(),
56 rruleDescription: \CCalendarEvent::GetRRULEDescription([
57 'RRULE' => $event->getRecurringRule()?->toArray(),
58 'DATE_FROM' => $event->getStart()->toString(),
59 'DT_SKIP_TIME' => $event->isFullDayEvent() ? 'Y' : 'N',
60 ]),
61 exdate: $event->getExcludedDateCollection()?->toString(),
62 );
63 }
64}
$count
Определения admin_tab.php:4
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
Определения check_mail.php:18
static buildFromEvent(Event $event, int $userId, ?bool $isAttendee, ?int $commentsCount,)
static getInstance()
Определения application.php:98
background color
Определения file_new.php:745
$event
Определения prolog_after.php:141