• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/classes/general/event_calendar.php
  • Класс: CEventCalendar
  • Вызов: CEventCalendar::GetCalendarEventsList
static function GetCalendarEventsList($calendarId, $arFilter = array())
{
	[$iblockId, $sectionId, $subSectionId] = $calendarId;

	$arSelect = array("ID", "IBLOCK_ID", "IBLOCK_SECTION_ID", "NAME", "ACTIVE_FROM", "ACTIVE_TO", "DETAIL_TEXT", "DETAIL_TEXT_TYPE", "TIMESTAMP_X", "DATE_CREATE", "CREATED_BY", "XML_ID", "PROPERTY_*");

	$arFilter1 = array(
		"IBLOCK_ID" => $iblockId,
		"ACTIVE" => "Y",
		"CHECK_PERMISSIONS" => "N",
		"INCLUDE_SUBSECTIONS" => "Y",
	);
	if ($sectionId > 0)
		$arFilter1["SECTION_ID"] = ($subSectionId > 0 ? $subSectionId : $sectionId);

	$arFilter = array_merge($arFilter1, $arFilter);

	if (isset($arFilter['DATE_START']))
	{
		$arFilter['!ACTIVE_TO'] = $arFilter['DATE_START'];
		unset($arFilter['DATE_START']);
	}
	if (isset($arFilter['DATE_END']))
	{
		$arFilter['!ACTIVE_FROM'] = $arFilter['DATE_END'];
		unset($arFilter['DATE_END']);
	}

	$arResult = array();

	$dbEvents = CIBlockElement::GetList(array(), $arFilter, false, false, $arSelect);
	while ($obEvent = $dbEvents->GetNextElement())
	{
		$arEvent = $obEvent->GetFields();

		$arEventProperties = $obEvent->GetProperties();
		foreach ($arEventProperties as $key => $value)
			$arEvent["PROPERTY_".$key] = $value["VALUE"];

		$arResult[] = $arEvent;
	}

	return $arResult;
}