- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/lib/rooms/iblockmeetingroom.php
- Класс: BitrixCalendarRoomsIBlockMeetingRoom
- Вызов: IBlockMeetingRoom::reserveMeetingRoom
static function reserveMeetingRoom(array $params)
{
if (!Loader::includeModule('iblock'))
{
return false;
}
$tst = MakeTimeStamp($params['dateTo']);
if (date('H:i', $tst) === '00:00')
{
$params['dateTo'] = CIBlockFormatProperties::DateFormat(
CCalendar::DFormat(true),
$tst + (23 * 60 + 59) * 60
);
}
$settings = CCalendar::GetSettings(['request' => false]);
$params['RMiblockId'] = $settings['rm_iblock_id'];
$check = self::checkMeetingRoom($params);
if ($check !== true)
{
return $check;
}
$fields = [
'IBLOCK_ID' => $params['RMiblockId'],
'IBLOCK_SECTION_ID' => $params['mrid'],
'NAME' => $params['name'],
'DATE_ACTIVE_FROM' => $params['dateFrom'],
'DATE_ACTIVE_TO' => $params['dateTo'],
'CREATED_BY' => CCalendar::GetCurUserId(),
'DETAIL_TEXT' => $params['description'],
'PROPERTY_VALUES' => [
'UF_PERSONS' => $params['persons'],
'PERIOD_TYPE' => 'NONE'
],
'ACTIVE' => 'Y'
];
$iBlockElem= new CIBlockElement;
$id = $iBlockElem->Add($fields);
// Hack: reserve meeting calendar based on old calendar's cache
$cache = new CPHPCache;
$cache->CleanDir('event_calendar/');
$cache->CleanDir('event_calendar/events/');
$cache->CleanDir('event_calendar/events/'.$params['RMiblockId']);
return (int)$id;
}