- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/lib/rooms/iblockmeetingroom.php
- Класс: BitrixCalendarRoomsIBlockMeetingRoom
- Вызов: IBlockMeetingRoom::getMeetingRoomList
static function getMeetingRoomList(array $params = []): array
{
if (COption::GetOptionString('calendar', 'eventWithLocationConverted', 'N') === 'Y')
{
$meetingRoomList = [];
self::$meetingRoomList = $meetingRoomList;
return $meetingRoomList;
}
if (isset(self::$meetingRoomList))
{
$meetingRoomList = self::$meetingRoomList;
}
else
{
$meetingRoomList = [];
if (!CCalendar::IsBitrix24() && Loader::includeModule('iblock'))
{
if (!isset($params['RMiblockId']) && !isset($params['VMiblockId']))
{
$settings = CCalendar::GetSettings();
$pathsForSite = CCalendar::GetSettings([
'forseGetSitePathes' => true,
'site' => CCalendar::GetSiteId()
]);;
$RMiblockId = $settings['rm_iblock_id'];
$pathToMR = $pathsForSite['path_to_rm'];
}
else
{
$RMiblockId = $params['RMiblockId'];
$pathToMR = $params['pathToMR'];
}
if (self::$allowReserveMeeting && !CCalendar::IsAdmin() && (CIBlock::GetPermission($RMiblockId) < 'R'))
{
self::$allowReserveMeeting = false;
}
if ((int)$RMiblockId > 0 && CIBlock::GetPermission($RMiblockId) >= 'R' && self::$allowReserveMeeting)
{
$orderBy = [
'NAME' => 'ASC',
'ID' => 'DESC'
];
$filter = [
'IBLOCK_ID' => $RMiblockId,
'ACTIVE' => 'Y'
];
$selectFields = [
'IBLOCK_ID',
'ID',
'NAME',
'DESCRIPTION',
'UF_FLOOR',
'UF_PLACE',
'UF_PHONE'
];
$res = CIBlockSection::GetList($orderBy, $filter, false, $selectFields );
while ($arMeeting = $res->GetNext())
{
$meetingRoomList[] = [
'ID' => $arMeeting['ID'],
'NAME' => $arMeeting['~NAME'],
'DESCRIPTION' => $arMeeting['~DESCRIPTION'],
'UF_PLACE' => $arMeeting['UF_PLACE'],
'UF_PHONE' => $arMeeting['UF_PHONE'],
'URL' => str_replace(
['#id#', '#ID#'],
$arMeeting['ID'],
$pathToMR
)
];
}
}
}
self::$meetingRoomList = $meetingRoomList;
}
return $meetingRoomList;
}