• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/classes/general/im_share.php
  • Класс: CIMShare
  • Вызов: CIMShare::Calendar
public function Calendar($messageId, $date = '')
{
	if (!CModule::IncludeModule("calendar"))
		return false;

	$CIMMessage = new CIMMessage($this->user_id);
	$message = $CIMMessage->GetMessage($messageId, true);

	if (!$message)
		return false;

	$dateFrom = new BitrixMainTypeDateTime();
	$dateFrom->add('1 DAY');

	$date = intval($date);
	if ($date > 0)
	{
		$dateFrom = BitrixMainTypeDateTime::createFromTimestamp($date);
	}
	else
	{
		$results = BitrixMainTextDateConverter::decode(BitrixImText::removeBbCodes($message['MESSAGE']), 1000);
		if (!empty($results))
		{
			$dateFrom = $results[0]->getDate();
		}
	}

	$userOffset = CTimeZone::GetOffset();
	if ($userOffset != 0)
	{
		$dateFrom->add(($userOffset*-1).' SECONDS');
	}

	$dateTo = clone $dateFrom;
	$dateTo->add('30 MINUTES');

	$eventId = CCalendar::SaveEvent(array(
		'arFields' => array(
			'CAL_TYPE' => 'user',
			'OWNER_ID' => $this->user_id,
			'NAME' => CTextParser::clearAllTags($message['MESSAGE']),
			'DESCRIPTION' => self::PrepareText($message),
			'SKIP_TIME' => false,
			'DATE_FROM' => $dateFrom,
			'DATE_TO' => $dateTo,
		),
		'userId' => $this->user_id,
		'autoDetectSection' => true,
		'autoCreateSection' => true
	));

	if (!$eventId)
	{
		return false;
	}

	$link = CHTTP::urlAddParams(CCalendar::GetPathForCalendarEx($this->user_id), array('EVENT_ID' => $eventId));

	$messageParams = Array('LINK_ACTIVE' => Array((string)$this->user_id));

	$this->SendMessage('', GetMessage('IM_SHARE_CHAT_CALEND', Array('#LINK#' => $link)), $message, $messageParams, true);

	return true;
}