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