• Модуль: dav
  • Путь к файлу: ~/bitrix/modules/dav/classes/general/exchangecalendar2.php
  • Класс: CDavExchangeCalendar
  • Вызов: CDavExchangeCalendar::DoAddCalendar
static function DoAddCalendar($userId, $arFields)
	{
		if (DAV_EXCH_DEBUG)
		{
			CDav::WriteToLog("EXCHANGE DoAddCalendar called for user ".$userId, "MDFE");
		}

		$exchangeScheme = COption::GetOptionString("dav", "exchange_scheme", "http");
		$exchangeServer = COption::GetOptionString("dav", "exchange_server", "");
		$exchangePort = COption::GetOptionString("dav", "exchange_port", "80");
		$exchangeUsername = COption::GetOptionString("dav", "exchange_username", "");
		$exchangePassword = COption::GetOptionString("dav", "exchange_password", "");

		if (empty($exchangeServer))
		{
			return "";
		}

		$exchange = new CDavExchangeCalendar(
			$exchangeScheme,
			$exchangeServer,
			$exchangePort,
			$exchangeUsername,
			$exchangePassword
		);

		if (GW_DEBUG)
		{
			$exchange->Debug();
		}

		$exchangeMailbox = COption::GetOptionString("dav", "exchange_mailbox", "");
		$exchangeUseLogin = COption::GetOptionString("dav", "exchange_use_login", "Y");

		self::InitUserEntity();

		$userId = (int)$userId;
		$dbUserList = CUser::GetList(
			"",
			"",
			array("ACTIVE" => "Y", "!UF_DEPARTMENT" => false, "ID_EQUAL_EXACT" => $userId),
			array("SELECT" => array("UF_BXDAVEX_MAILBOX", "UF_BXDAVEX_CALSYNC"),
				"FIELDS" => array('ID', 'LOGIN'))
		);
		if ($arUser = $dbUserList->Fetch())
		{
			$mailbox = (($exchangeUseLogin === "Y")
				? $arUser["LOGIN"].$exchangeMailbox
				: $arUser["UF_BXDAVEX_MAILBOX"])
			;
			if (!empty($mailbox))
			{
				$arFields["MAILBOX"] = $mailbox;
				$arResult = $exchange->AddCalendar($arFields);
				if (is_array($arResult) && !empty($arResult))
				{
					return $arResult[0];
				}
			}
		}

		return $exchange->GetErrors();
	}