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