2namespace Bitrix\Calendar\Sharing\Notification;
4use Bitrix\Calendar\Core\Event\Event;
5use Bitrix\Calendar\Sharing\Link\EventLink;
6use Bitrix\Calendar\Sharing\Link\CrmDealLink;
7use Bitrix\Calendar\Sharing;
16 private array $users = [];
32 $this->
event = $event;
42 return $this->eventLink;
80 $this->initiatorId = $id;
90 $from = $this->
event->getStart();
91 $to = $this->
event->getEnd();
92 $isFullDay = $this->
event->isFullDayEvent();
101 $ownerId = (int)$this->eventLink->getOwnerId();
103 return $this->getUser($ownerId);
108 if ($this->initiatorId ===
null)
113 return $this->getUser($this->initiatorId);
121 if ($this->eventLink->getParentLinkHash())
124 $userLink = $sharingLinkFactory->getLinkByHash($this->eventLink->getParentLinkHash());
127 return $userLink->getUrl();
138 $attendeeListResult = \CCalendarEvent::getAttendeeList([$this->event->getId()]);
140 return $attendeeListResult[
'attendeeList'][$this->
event->getId()];
143 private function getUser(
int $id):
array
145 if (in_array($id, $this->users,
true))
147 return $this->users[$id];
152 $eventAttendees = $this->getAttendeesList();
153 $userAttendeeInfo = current(array_filter($eventAttendees,
static function(
array $attendee) use ($id):
bool {
154 $attendeeId = $attendee[
'id'] ??
null;
156 return $attendeeId === $id;
159 if (isset($userAttendeeInfo[
'status']) && !in_array($userAttendeeInfo[
'status'], [
'Q',
'Y',
'N'],
true))
161 $userAttendeeInfo[
'status'] =
'Q';
164 $this->users[$id] = [
166 'NAME' =>
"{$userInfo['name']} {$userInfo['lastName']}",
167 'PHOTO' => $userInfo[
'photo'],
168 'GENDER' => $userInfo[
'gender'],
169 'STATUS' => $userAttendeeInfo[
'status'] ??
'Q',
172 return $this->users[$id];
static formatTimeInterval(Date $from, Date $to, bool $isFullDay)
static getUserInfo(int $userId)
setCrmDealLink(CrmDealLink $crmDealLink)
setOldEvent(Event $oldEvent)
getEventFormattedDateTime()
setEventLink(EventLink $eventLink)
notifyAboutSharingEventEdit(string $to)
notifyAboutMeetingStatus(string $to)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)