17 public const ICS =
'ics';
20 public const ACTION_ICS =
'?'.self::ACTION.
'='.self::ICS;
24 $eventId =
$event->getId();
26 $dateCreate =
$event->getDateCreate();
28 if (
$userId ===
null || $dateCreate ===
null)
40 $eventId =
$event->getId();
41 $ownerId =
$event->getOwner()?->getId();
42 $dateCreate =
$event->getDateCreate();
44 if ($ownerId ===
null || $dateCreate ===
null)
58 $serverPath = \CCalendar::GetServerPath();
59 $publicPath = self::PUBLIC_EVENT_PATH;
61 return "$serverPath/$publicPath/$eventId/".self::getHashForPubEvent($eventId,
$userId, $dateCreateTimestamp).
"/";
66 return md5($eventId.self::getSaltForPubLink().$dateCreateTimestamp.$userId);
71 $salt = \COption::GetOptionString(
'calendar',
'pub_event_salt',
'');
75 $salt = uniqid(
'',
true);
76 \COption::SetOptionString(
'calendar',
'pub_event_salt', $salt);
84 if (
$event->getMeetingDescription()?->getHideGuests())
86 $event->setAttendeesCollection(
null);
91 'eventUrl' => $detailLink,
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
static getDetailLinkFromEvent(Event $event)
static getDetailLink(int $eventId, int $userId, int $dateCreateTimestamp)
static getHashForPubEvent(int $eventId, int $userId, int $dateCreateTimestamp)
static isHashValid(Event $event, ?string $hash)
static prepareEventDescriptionForIcs(Event $event)
static getSaltForPubLink()
static getTimestamp($date, $round=true, $getTime=true)
if(Loader::includeModule( 'bitrix24')) elseif(Loader::includeModule('intranet') &&CIntranetUtils::getPortalZone() !=='ru') $description