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