- Модуль: timeman
- Путь к файлу: ~/bitrix/modules/timeman/classes/general/timeman_user.php
- Класс: CTimeManUser
- Вызов: CTimeManUser::GetEvents
public function GetEvents($date)
{
$arEvents = [];
if (CBXFeatures::IsFeatureEnabled('Calendar'))
{
$ts = CTimeMan::RemoveHoursTS(MakeTimeStamp($date));
if ($ts > 0)
{
$calendar2 = COption::GetOptionString("intranet", "calendar_2", "N") == "Y" && CModule::IncludeModule('calendar');
if ($calendar2)
{
$arFilter = [
'arFilter' => [
"OWNER_ID" => $this->USER_ID,
"FROM_LIMIT" => ConvertTimeStamp($ts, 'FULL'),
"TO_LIMIT" => ConvertTimeStamp($ts + 86399, 'FULL'),
],
'parseRecursion' => true,
'userId' => $this->USER_ID,
'skipDeclined' => true,
'fetchAttendees' => false,
'fetchMeetings' => true,
];
$arNewEvents = CCalendarEvent::GetList($arFilter);
if (count($arNewEvents) > 0)
{
foreach ($arNewEvents as $arEvent)
{
if ($arEvent['RRULE'])
{
$ts_from = MakeTimeStamp($arEvent['DT_FROM']);
$ts_to = MakeTimeStamp($arEvent['DT_TO']);
if ($ts_to < $ts || $ts_from > $ts + 86399)
{
continue;
}
}
$arEvents[] = [
'ID' => $arEvent['ID'],
'OWNER_ID' => $this->USER_ID,
'CREATED_BY' => $arEvent['CREATED_BY'],
'NAME' => $arEvent['NAME'],
'DETAIL_TEXT' => $arEvent['DESCRIPTION'],
'DATE_FROM' => $arEvent['DT_FROM'],
'DATE_TO' => $arEvent['DT_TO'],
'IMPORTANCE' => $arEvent['IMPORTANCE'],
'ACCESSIBILITY' => $arEvent['ACCESSIBILITY'],
];
}
}
}
else
{
$arEvents = CEventCalendar::GetNearestEventsList(
[
'userId' => $this->USER_ID,
'bCurUserList' => true,
'fromLimit' => ConvertTimeStamp($ts, 'FULL'),
'toLimit' => ConvertTimeStamp($ts + 86399, 'FULL'),
'iblockId' => COption::GetOptionInt('intranet', 'iblock_calendar'),
]
);
foreach ($arEvents as $key => $event)
{
if ($event['STATUS'] === 'N')
{
unset($arEvents[$key]);
}
}
}
return array_values($arEvents);
}
}
return false;
}