• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/rooms/iblockmeetingroom.php
  • Класс: BitrixCalendarRoomsIBlockMeetingRoom
  • Вызов: IBlockMeetingRoom::getAccessibilityForMeetingRoom
static function getAccessibilityForMeetingRoom(array $params): array
{
	if (!Loader::includeModule('iblock'))
	{
		return [];
	}

	$allowReserveMeeting =
		$params['allowReserveMeeting'] ?? self::$allowReserveMeeting
	;
	$settings = CCalendar::GetSettings(['request' => false]);
	$RMiblockId = $settings['rm_iblock_id'];
	$curEventId = $params['curEventId'] ?? false;
	$result = [];
	$offset = CCalendar::GetOffset();
	
	if ($allowReserveMeeting)
	{
		$select = [
			'ID',
			'NAME',
			'IBLOCK_SECTION_ID',
			'IBLOCK_ID',
			'ACTIVE_FROM',
			'ACTIVE_TO'
		];
		$filter = [
			'IBLOCK_ID' => $RMiblockId,
			'SECTION_ID' => $params['id'],
			'INCLUDE_SUBSECTIONS' => 'Y',
			'ACTIVE' => 'Y',
			'CHECK_PERMISSIONS' => 'N',
			'>=DATE_ACTIVE_TO' => $params['from'],
			'<=DATE_ACTIVE_FROM' => $params['to']
		];
		if ((int)$curEventId > 0)
		{
			$filter['!ID'] = (int)$curEventId;
		}
		
		$rsElement = CIBlockElement::GetList(['ACTIVE_FROM' => 'ASC'], $filter, false, false, $select);
		while($iBlockElem = $rsElement->GetNextElement())
		{
			$item = $iBlockElem->GetFields();
			$item['DISPLAY_ACTIVE_FROM'] = CIBlockFormatProperties::DateFormat(
				CCalendar::DFormat(true), MakeTimeStamp($item['ACTIVE_FROM'])
			);
			$item['DISPLAY_ACTIVE_TO'] = CIBlockFormatProperties::DateFormat(
				CCalendar::DFormat(true), MakeTimeStamp($item['ACTIVE_TO'])
			);
			
			$result[] = [
				'ID' => (int)$item['ID'],
				'NAME' => $item['~NAME'],
				'DT_FROM' => CCalendar::CutZeroTime($item['DISPLAY_ACTIVE_FROM']),
				'DT_TO' => CCalendar::CutZeroTime($item['DISPLAY_ACTIVE_TO']),
				'DT_FROM_TS' => (CCalendar::Timestamp($item['DISPLAY_ACTIVE_FROM']) - $offset) * 1000,
				'DT_TO_TS' => (CCalendar::Timestamp($item['DISPLAY_ACTIVE_TO']) - $offset) * 1000
			];
		}
	}
	
	return $result;
}