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