- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar_notify.php
- Класс: CCalendarNotify
- Вызов: CCalendarNotify::Invite
static function Invite($fields = [], $params = [])
{
$fields['NOTIFY_EVENT'] = "invite";
$fields['NOTIFY_TYPE'] = IM_NOTIFY_CONFIRM;
$fields['NOTIFY_TAG'] = "CALENDAR|INVITE|".$params['eventId']."|".$fields['TO_USER_ID'];
$fields['NOTIFY_SUB_TAG'] = "CALENDAR|INVITE|" . $params['eventId'] ?? null;
if (!empty($params['rrule']))
{
$fromTs = CCalendar::Timestamp($params['fields']['DATE_FROM'] ?? null);
$toTs = CCalendar::Timestamp($params['fields']['DATE_TO'] ?? null);
if (($params['fields']['DT_SKIP_TIME'] ?? null) === "Y")
{
$toTs += CCalendar::DAY_LENGTH;
}
else
{
$fromTs = $fromTs
- CCalendar::GetTimezoneOffset($params['fields']['TZ_FROM'] ?? null)
+ CCalendar::GetCurrentOffsetUTC($fields['TO_USER_ID'] ?? null);
$toTs = $toTs
- CCalendar::GetTimezoneOffset($params['fields']['TZ_TO'] ?? null)
+ CCalendar::GetCurrentOffsetUTC($fields['TO_USER_ID'] ?? null);
}
$params['from_to_html'] = CCalendar::GetFromToHtml(
$fromTs,
$toTs,
($params['fields']['DT_SKIP_TIME'] ?? null) === 'Y',
$params['fields']['DT_LENGTH'] ?? null,
true
);
$fields['MESSAGE'] = Loc::getMessage('EC_MESS_REC_INVITE_SITE', [
'#TITLE#' => $params["name"] ?? null,
'#ACTIVE_FROM#' => $params['from_to_html'],
'#RRULE#' => $params["rrule"] ?? null
]);
$fields['MESSAGE_OUT'] = Loc::getMessage('EC_MESS_REC_INVITE', [
'#OWNER_NAME#' => CCalendar::GetUserName($params['userId']),
'#TITLE#' => $params["name"],
'#ACTIVE_FROM#' => $params['from_to_html'],
'#RRULE#' => $params["rrule"]
]);
}
else
{
$fields['MESSAGE'] = Loc::getMessage('EC_MESS_INVITE_SITE', [
'#TITLE#' => $params["name"],
'#ACTIVE_FROM#' => $params["from_formatted"]
]);
$fields['MESSAGE_OUT'] = Loc::getMessage('EC_MESS_INVITE', [
'#OWNER_NAME#' => CCalendar::GetUserName($params['userId']),
'#TITLE#' => $params["name"],
'#ACTIVE_FROM#' => $params["from_formatted"]
]);
}
if ($params['location'])
{
$fields['MESSAGE'] .= "nn" . Loc::getMessage('EC_EVENT_REMINDER_LOCATION', [
'#LOCATION#' => $params['location']
]);
$fields['MESSAGE_OUT'] .= "nn" . Loc::getMessage('EC_EVENT_REMINDER_LOCATION', [
'#LOCATION#' => $params['location']
]);
}
if ($params['isSharing'] ?? false)
{
$fields['MESSAGE'] = Loc::getMessage('EC_MESS_INVITE_SITE_SHARING', [
'#TITLE#' => $params["name"],
'#ACTIVE_FROM#' => $params["from_formatted"],
]);
}
$fields['PUSH_MESSAGE'] = str_replace(
['[B]', '[/B]'],
['', ''],
$fields['MESSAGE']
);
$fields['MESSAGE'] .= "nn".Loc::getMessage('EC_MESS_INVITE_DETAILS_SITE', ['#LINK#' => $params["pathToEvent"]]);
$fields['NOTIFY_LINK'] = $params["pathToEvent"];
$fields['NOTIFY_BUTTONS'] = [
['TITLE' => Loc::getMessage('EC_MESS_INVITE_CONF_Y_SITE'), 'VALUE' => 'Y', 'TYPE' => 'accept'],
['TITLE' => Loc::getMessage('EC_MESS_INVITE_CONF_N_SITE'), 'VALUE' => 'N', 'TYPE' => 'cancel']
];
$fields['MESSAGE_OUT'] .= "nn".Loc::getMessage('EC_MESS_INVITE_CONF_Y', ['#LINK#' => $params["pathToEvent"].'&CONFIRM=Y']);
$fields['MESSAGE_OUT'] .= "n".Loc::getMessage('EC_MESS_INVITE_CONF_N', ['#LINK#' => $params["pathToEvent"].'&CONFIRM=N']);
$fields['MESSAGE_OUT'] .= "nn".Loc::getMessage('EC_MESS_INVITE_DETAILS', ['#LINK#' => $params["pathToEvent"]]);
$fields['TITLE'] = Loc::getMessage('EC_MESS_INVITE_TITLE',
[
'#OWNER_NAME#' => CCalendar::GetUserName($params['userId']),
'#TITLE#' => $params["name"]
]
);
return $fields;
}