• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar_event_handlers.php
  • Класс: CCalendarEventHandlers
  • Вызов: CCalendarEventHandlers::plannerActionShow
static function plannerActionShow($arParams)
{
	global $DB, $USER;

	$res = false;

	if($arParams['ID'] > 0)
	{
		$event = self::getEvent(array(
			'ID' => $arParams['ID'],
			'SITE_ID' => $arParams['SITE_ID']
		));


		if ($event)
		{
			$today = ConvertTimeStamp(time() + CTimeZone::GetOffset(), 'SHORT');
			$now = time();

			$res = array(
				'ID' => $event['ID'],
				'NAME' => $event['NAME'],
				'DESCRIPTION' => CCalendarEvent::ParseText($event['DETAIL_TEXT'], $event['ID'], $event['UF_WEBDAV_CAL_EVENT']),
				'URL' => '/company/personal/user/'.$USER->GetID().'/calendar/?EVENT_ID=' .$event['ID'],
				'DATE_FROM' => MakeTimeStamp($event['DATE_FROM']),
				'DATE_TO' => MakeTimeStamp($event['DATE_TO']),
				'STATUS' => $event['STATUS'],
			);

			$res['DATE_FROM_TODAY'] = ConvertTimeStamp($res['DATE_FROM'],'SHORT') == $today;
			$res['DATE_TO_TODAY'] = ConvertTimeStamp($res['DATE_TO'], 'SHORT') == $today;

			if ($res['DATE_FROM_TODAY'])
			{
				if (IsAmPmMode())
				{
					$res['DATE_F'] = FormatDate("today g:i a", $res['DATE_FROM']);
					$res['DATE_T'] = FormatDate("g:i a", $res['DATE_TO']);
				}
				else
				{
					$res['DATE_F'] = FormatDate("today H:i", $res['DATE_FROM']);
					$res['DATE_T'] = FormatDate("H:i", $res['DATE_TO']);
				}

				if ($res['DATE_TO_TODAY'])
					$res['DATE_F'] .= ' - '.$res['DATE_T'];

				if ($res['DATE_FROM'] > $now)
				{

					$res['DATE_F_TO'] = GetMessage('TM_IN').' '.FormatDate('Hdiff', time()*2-($res['DATE_FROM'] - CTimeZone::GetOffset()));
				}
			}
			else if ($res['DATE_TO_TODAY'])
			{
				$res['DATE_F'] = FormatDate(str_replace(
					array('#today#', '#time#'),
					array('today', 'H:i'),
					GetMessage('TM_TILL')
				), $res['DATE_TO']);
			}
			else
			{
				$fmt = preg_replace('/:s$/', '', $DB::DateFormatToPHP(CSite::GetDateFormat("FULL")));
				$res['DATE_F'] = FormatDate($fmt, $res['DATE_FROM']);
				$res['DATE_F_TO'] = FormatDate($fmt, $res['DATE_TO']);
			}

			if ($event['IS_MEETING'] === 'Y')
			{
				$arGuests = array('Y' => array(), 'N' => array(), 'Q' => array());
				foreach ($event['GUESTS'] as $key => $guest)
				{
					$guest['url'] = str_replace(
						array('#ID#', '#USER_ID#'),
						$guest['id'],
						COption::GetOptionString('intranet', 'path_user', '/company/personal/user/#USER_ID#/', $arParams['SITE_ID'])
					);

					if ($guest['bHost'])
					{
						$res['HOST'] = $guest;
					}
					else
					{
						$arGuests[$guest['status']][] = $guest;
					}
				}

				$res['GUESTS'] = array_merge($arGuests['Y'], $arGuests['N'], $arGuests['Q']);
			}

			if (mb_strlen($res['DESCRIPTION']) > 150)
			{
				$res['DESCRIPTION'] = CUtil::closetags(mb_substr($res['DESCRIPTION'], 0, 150)).'...';
			}

			$res = array('EVENT' => $res);
		}
	}
	else
	{
		$res = array('error' => 'event not found');
	}

	return $res;
}