- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar_sect.php
- Класс: CCalendarSect
- Вызов: CCalendarSect::CreateDefault
static function CreateDefault($params = [])
{
if ($params['type'] === 'user' || $params['type'] === 'group')
{
$name = CCalendar::GetOwnerName($params['type'], $params['ownerId']);
}
else
{
$name = $params['type'] === 'location' ? Loc::getMessage('EC_DEF_SECT_LOCATION_CAL') : Loc::getMessage('EC_DEF_SECT_GROUP_CAL');
}
$userId = $params['type'] === 'user' ? $params['ownerId'] : CCalendar::GetCurUserId();
if ($userId > 0)
{
$arFields = [
'CAL_TYPE' => $params['type'],
'NAME' => $name,
'DESCRIPTION' => Loc::getMessage('EC_DEF_SECT_DESC'),
'COLOR' => CCalendar::Color(),
'OWNER_ID' => $params['ownerId'],
'IS_EXCHANGE' => 0,
'ACCESS' => CCalendarSect::GetDefaultAccess($params['type'], $params['ownerId']),
'PERM' => [
'view_time' => true,
'view_title' => true,
'view_full' => true,
'add' => true,
'edit' => true,
'edit_section' => true,
'access' => true,
],
'EXTERNAL_TYPE' => self::EXTERNAL_TYPE_LOCAL,
];
if($params['type'] === 'location')
{
$arFields['NECESSITY'] = 'N';
$arFields['CAPACITY'] = 0;
$builder = new BitrixCalendarCoreBuildersRoomsRoomBuilderFromArray($arFields);
$room = $builder->build();
RoomsManager::createInstanceWithRoom($room)
->createRoom()
->saveAccess()
->clearCache()
->eventHandler('OnAfterCalendarRoomCreate')
->addPullEvent('create_room')
;
$arFields['ID'] = $room->getId();
}
else
{
$arFields['ID'] = self::Edit([
'arFields' => $arFields,
'userId' => $userId,
]);
}
if ($arFields['ID'] > 0)
{
return $arFields;
}
}
return false;
}