• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar.php
  • Класс: CCalendar
  • Вызов: CCalendar::AddConnection
static function AddConnection($connection, $type = 'caldav')
{
	if((!self::CheckCalDavUrl($connection['link'], $connection['user_name'], $connection['pass'])))
	{
		return Loc::getMessage('EC_CAL_OPERATION_CANNOT_BE_PERFORMED');
	}

	$arFields = [
		'ENTITY_TYPE' => 'user',
		'ENTITY_ID' => $connection['user_id'],
		'ACCOUNT_TYPE' =>  BitrixCalendarSyncCaldavHelper::CALDAV_TYPE,
		'NAME' => $connection['name'],
		'SERVER' => $connection['link'],
		'SERVER_USERNAME' => $connection['user_name'],
		'SERVER_PASSWORD' => $connection['pass'],
	];

	CDavConnection::ParseFields($arFields);

	$davConnection = CDavConnection::getList(
		['ID' => 'ASC'],
		[
			'SERVER_HOST' => $arFields['SERVER_HOST'],
			'SERVER_PATH' => $arFields['SERVER_PATH'],
			'ENTITY_ID' => $arFields['ENTITY_ID'],
		],
		false,
		['nTopCount' => 1]
	);

	if ($con = $davConnection->fetch())
	{
		return Loc::getMessage('EC_CAL_SERVER_ALREADY_CONNECTED');
	}

	CDavConnection::Add($arFields);

	return true;
}