• Модуль: dav
  • Путь к файлу: ~/bitrix/modules/dav/classes/general/exchangetasks.php
  • Класс: CDavExchangeTasks
  • Вызов: CDavExchangeTasks::DoAddItem
static function DoAddItem($userId, $arFields)
{
	$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 CDavExchangeTasks($exchangeScheme, $exchangeServer, $exchangePort, $exchangeUsername, $exchangePassword);

	$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("ID", "LOGIN", "UF_BXDAVEX_MAILBOX"))
	);
	if ($arUser = $dbUserList->Fetch())
	{
		$mailbox = (($exchangeUseLogin === "Y") ? $arUser["LOGIN"].$exchangeMailbox : $arUser["UF_BXDAVEX_MAILBOX"]);
		if (!empty($mailbox))
		{
			$arFields["MAILBOX"] = $mailbox;

			if (isset($arFields["FOLDER_ID"]))
			{
				$arFoldersList = $exchange->GetFoldersList(array("mailbox" => $mailbox));
				$arUserFolders = array(GetMessage("DAV_EC_TASKS") => "tasks");
				foreach ($arFoldersList as $value)
				{
					$arUserFolders[$value["NAME"]] = $value["XML_ID"];
				}

				if (array_key_exists($arFields["FOLDER_ID"], $arUserFolders))
				{
					$arFields["FOLDER_ID"] = $arUserFolders[$arFields["FOLDER_ID"]];
				}
				else
				{
					$arFields["FOLDER_ID"] = "tasks";
				}
			}
			else
			{
				$arFields["FOLDER_ID"] = "tasks";
			}

			$arResult = $exchange->Add($arFields);

			if (is_array($arResult) && !empty($arResult))
			{
				return $arResult[0];
			}
		}
	}

	return $exchange->GetErrors();
}