- Модуль: 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;
}