• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/classes/general/event_calendar.php
  • Класс: CEventCalendar
  • Вызов: CEventCalendar::SendInvitationMessage
static function SendInvitationMessage($arParams)
{
	if (!CModule::IncludeModule("socialnetwork"))
		return;

	$rs = CUser::GetList("id", "asc", array("ID_EQUAL_EXACT"=>intval($arParams["guestId"]), "ACTIVE" => "Y"));
	if (!$rs->Fetch())
		return;

	$calendarUrl_ = str_replace('#user_id#', $arParams["guestId"], $arParams["pathToUserCalendar"]);
	$calendarUrl_ = (CMain::IsHTTPS() ? "https://" : "http://").$_SERVER['HTTP_HOST'].$calendarUrl_;
	$calendarUrl = $calendarUrl_.((mb_strpos($calendarUrl_, "?") === false) ? '?' : '&').'EVENT_ID='.intval($arParams["eventId"]);

	if ($arParams['type'] == 'invite')
	{
		$mess = GetMessage('EC_MESS_INVITE', array('#OWNER_NAME#' => $arParams["ownerName"], '#TITLE#' => $arParams["name"], '#ACTIVE_FROM#' => $arParams["from"]));

		if ($arParams['location'] <> '')
			$mess .= "nn".GetMessage('EC_LOCATION').': '.$arParams['location'];

		if (trim($arParams["meetingText"]) <> '')
			$mess .= "nn".GetMessage('EC_MESS_MEETING_TEXT', array('#MEETING_TEXT#' => $arParams["meetingText"]));

		$mess .= "nn".GetMessage('EC_MESS_INVITE_CONF_Y', array('#LINK#' => $calendarUrl.'&CONFIRM=Y'));
		$mess .= "n".GetMessage('EC_MESS_INVITE_CONF_N', array('#LINK#' => $calendarUrl.'&CONFIRM=N'));
		$mess .= "nn".GetMessage('EC_MESS_INVITE_DETAILS', array('#LINK#' => $calendarUrl.'&CLOSE_MESS=Y'));

		$title = GetMessage('EC_MESS_INVITE_TITLE', array('#OWNER_NAME#' => $arParams["ownerName"], '#TITLE#' => $arParams["name"]));
	}
	elseif($arParams['type'] == 'change')
	{
		$mess = GetMessage('EC_MESS_INVITE_CHANGED', array('#OWNER_NAME#' => $arParams["ownerName"], '#TITLE#' => $arParams["name"], '#ACTIVE_FROM#' => $arParams["from"]));

		if (trim($arParams["meetingText"]) <> '')
			$mess .= "nn".GetMessage('EC_MESS_MEETING_TEXT', array('#MEETING_TEXT#' => $arParams["meetingText"]));

		$mess .= "nn".GetMessage('EC_MESS_INVITE_CONF_Y', array('#LINK#' => $calendarUrl.'&CONFIRM=Y'));
		$mess .= "n".GetMessage('EC_MESS_INVITE_CONF_N', array('#LINK#' => $calendarUrl.'&CONFIRM=N'));
		$mess .= "nn".GetMessage('EC_MESS_INVITE_DETAILS', array('#LINK#' => $calendarUrl.'&CLOSE_MESS=Y'));

		$title = GetMessage('EC_MESS_INVITE_CHANGED_TITLE', array('#TITLE#' => $arParams["name"]));
	}
	elseif($arParams['type'] == 'cancel')
	{
		$mess = GetMessage('EC_MESS_INVITE_CANCEL', array('#OWNER_NAME#' => $arParams["ownerName"], '#TITLE#' => $arParams["name"], '#ACTIVE_FROM#' => $arParams["from"]));

		$mess .= "nn".GetMessage('EC_MESS_VIEW_OWN_CALENDAR', array('#LINK#' => $calendarUrl_));
		$title = GetMessage('EC_MESS_INVITE_CANCEL_TITLE', array('#TITLE#' => $arParams["name"]));
	}
	else
		return;

	$arMessageFields = array(
		"=DATE_CREATE" => $GLOBALS["DB"]->CurrentTimeFunction(),
		"MESSAGE_TYPE" => SONET_MESSAGE_SYSTEM,
		"FROM_USER_ID" => $arParams["userId"],
		"TITLE" => $title,
		"TO_USER_ID" => $arParams["guestId"],
		"MESSAGE" => $mess,
		"EMAIL_TEMPLATE" => "CALENDAR_INVITATION"
	);

	$res = CSocNetMessages::Add($arMessageFields);

	$db_events = GetModuleEvents("intranet", "OnSendInvitationMessage");
	while($arEvent = $db_events->Fetch())
		ExecuteModuleEventEx($arEvent, array($arParams));

	/*
	// Send to e-mail
	$event = new CEvent;
	$arEvent = array(
		"GUEST_EMAIL" => $arParams["email"],
		"NAME" => $arParams["name"],
		"ACTIVE_FROM" => $arParams["from"],
		"ACTIVE_TO" => $arParams["to"],
		"GUEST_NAME" => $arParams["guestName"],
		"OWNER_NAME" => $arParams["ownerName"],
		"DETAIL_TEXT" => $arParams["desc"],
		"CALENDAR_URL" => $calendarUrl
	);
	$event->Send($arParams['type'], SITE_ID, $arEvent);
	*/
}