3namespace Bitrix\Calendar\Access\Model;
5use Bitrix\Calendar\Access\AccessibleEvent;
6use Bitrix\Calendar\Core\Event\Event;
7use Bitrix\Calendar\Core\Role\Role;
8use Bitrix\Main\Access\AccessibleItem;
12 private static array $cache = [];
15 private int $ownerId = 0;
16 private int $createdBy = 0;
17 private int $sectionId = 0;
18 private string $sectionType =
'';
19 private string $eventType =
'';
20 private string $meetingStatus =
'';
21 private int $parentEventSectionId = 0;
22 private string $parentEventSectionType =
'';
23 private int $parentEventOwnerId = 0;
24 private int $parentEventId = 0;
25 private ?
int $eventCategoryId =
null;
26 private ?
array $attendeeIds = [];
35 if (!isset(static::$cache[$itemId]))
38 $model->setId($itemId);
39 static::$cache[$itemId] = $model;
42 return static::$cache[$itemId];
63 $model->setOwnerId(
$fields[
'OWNER_ID']);
68 $model->setCreatedBy(
$fields[
'CREATED_BY']);
71 if (
$fields[
'SECTION_ID'] ??
null)
73 $model->setSectionId((
int)
$fields[
'SECTION_ID']);
76 if ((
$fields[
'CAL_TYPE'] ??
null) && is_string(
$fields[
'CAL_TYPE']))
78 $model->setSectionType(
$fields[
'CAL_TYPE']);
81 if ((
$fields[
'EVENT_TYPE'] ??
null) && is_string(
$fields[
'EVENT_TYPE']))
83 $model->setEventType(
$fields[
'EVENT_TYPE']);
86 if ((
$fields[
'MEETING_STATUS'] ??
null) && is_string(
$fields[
'MEETING_STATUS']))
88 $model->setMeetingStatus(
$fields[
'MEETING_STATUS']);
91 if ((
int)(
$fields[
'PARENT_ID'] ??
null))
93 $model->setParentEventId((
int)
$fields[
'PARENT_ID']);
97 (
int)(
$fields[
'PARENT_ID'] ??
null)
101 $parentFields = \CCalendarSect::GetSectionByEventId((
int)
$fields[
'PARENT_ID']);
102 if ($parentFields && is_array($parentFields))
104 $model->setParentEventSectionFields($parentFields);
109 $model->setParentEventSectionFields(
$fields);
112 if (!empty(
$fields[
'OPTIONS'][
'CATEGORY_ID']))
114 $model->setEventCategoryId((
int)
$fields[
'OPTIONS'][
'CATEGORY_ID']);
118 !empty(
$fields[
'ATTENDEE_LIST'])
119 && $attendees =
$fields[
'ATTENDEE_LIST']
122 $model->setAttendeeIds(array_map(fn(
array $attendee) => (
int)$attendee[
'id'], $attendees));
139 $owner =
$event->getOwner();
140 if ($owner instanceof
Role)
142 $model->setOwnerId($owner->getId());
145 $creator =
$event->getCreator();
146 if ($creator instanceof
Role)
148 $model->setCreatedBy($creator->getId());
152 ->setSectionId(
$event->getSection()->getId())
153 ->setSectionType(
$event->getSection()->getType())
154 ->setEventType(
$event->getSpecialLabel())
155 ->setMeetingStatus(
$event->getMeetingStatus())
156 ->setEventCategoryId(
$event->getEventOption()?->getCategoryId())
157 ->setAttendeeIds(
$event->getAttendeesCollection()?->getAttendeesIdCollection())
160 $parentFields =\CCalendarSect::GetSectionByEventId(
$event->getParentId());
161 if ($parentFields && is_array($parentFields))
163 $model->setParentEventSectionFields($parentFields);
176 if ((
$fields[
'SECTION_ID'] ??
null) && (
int)
$fields[
'SECTION_ID'])
181 if ((
$fields[
'CAL_TYPE'] ??
null) && is_string(
$fields[
'CAL_TYPE']))
189 public function setId(
int $id): self
203 $this->ownerId = $ownerId;
210 return $this->ownerId;
215 $this->createdBy = $createdBy;
222 return $this->createdBy;
227 $this->sectionId = $sectionId;
234 return $this->sectionId;
239 $this->sectionType = $sectionType;
246 return $this->sectionType;
251 $this->eventType = $eventType;
258 return $this->eventType;
263 $this->meetingStatus = $meetingStatus;
270 return $this->meetingStatus;
275 $this->parentEventSectionId = $parentEventSectionId;
282 $this->parentEventId = $parentEventId;
289 return $this->parentEventSectionId;
294 $this->parentEventSectionType = $parentEventSectionType;
301 return $this->parentEventSectionType;
306 $this->parentEventOwnerId = $parentEventOwnerId;
312 return $this->parentEventOwnerId;
317 return $this->parentEventId;
322 $this->eventCategoryId = $eventCategoryId;
329 return $this->eventCategoryId;
334 $this->attendeeIds = $attendeeIds ?? [];
341 return in_array(
$userId, $this->attendeeIds,
true);
346 return $this->createdBy;
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
setEventType(string $eventType)
static createFromObject(Event $event)
setAttendeeIds(?array $attendeeIds)
setParentEventSectionFields(array $fields)
setMeetingStatus(string $meetingStatus)
static createFromArray(array $fields)
setParentEventOwnerId(int $parentEventOwnerId)
getParentEventSectionId()
setParentEventSectionId(int $parentEventSectionId)
static createFromId(int $itemId=0)
setSectionType(string $sectionType)
setEventCategoryId(?int $eventCategoryId)
setCreatedBy(int $createdBy)
setSectionId(int $sectionId)
setParentEventSectionType(string $parentEventSectionType)
getParentEventSectionType()
setParentEventId(int $parentEventId)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)