- Модуль: dav
- Путь к файлу: ~/bitrix/modules/dav/classes/general/exchangecontacts.php
- Класс: CDavExchangeContacts
- Вызов: CDavExchangeContacts::ConvertContactToArray
private function ConvertContactToArray($contactItem)
{
$arResultItem = array();
$arItemId = $contactItem->GetPath("/Contact/ItemId");
if (!empty($arItemId))
{
$arResultItem["XML_ID"] = $arItemId[0]->GetAttribute("Id");
$arResultItem["MODIFICATION_LABEL"] = $arItemId[0]->GetAttribute("ChangeKey");
}
$arGivenName = $contactItem->GetPath("/Contact/GivenName");
if (!empty($arGivenName))
{
$arResultItem["NAME"] = $this->Encode($arGivenName[0]->GetContent());
}
$arMiddleName = $contactItem->GetPath("/Contact/MiddleName");
if (!empty($arMiddleName))
{
$arResultItem["SECOND_NAME"] = $this->Encode($arMiddleName[0]->GetContent());
}
$arSurname = $contactItem->GetPath("/Contact/Surname");
if (!empty($arSurname))
{
$arResultItem["LAST_NAME"] = $this->Encode($arSurname[0]->GetContent());
}
$arCompanyName = $contactItem->GetPath("/Contact/CompanyName");
if (!empty($arCompanyName))
{
$arResultItem["WORK_COMPANY"] = $this->Encode($arCompanyName[0]->GetContent());
}
$arDepartment = $contactItem->GetPath("/Contact/Department");
if (!empty($arDepartment))
{
$arResultItem["WORK_DEPARTMENT"] = $this->Encode($arDepartment[0]->GetContent());
}
$arJobTitle = $contactItem->GetPath("/Contact/JobTitle");
if (!empty($arJobTitle))
{
$arResultItem["WORK_POSITION"] = $this->Encode($arJobTitle[0]->GetContent());
}
$arPhysicalAddresses = $contactItem->GetPath("/Contact/PhysicalAddresses/Entry");
foreach ($arPhysicalAddresses as $physicalAddress)
{
$entryKey = mb_strtolower($physicalAddress->GetAttribute("Key"));
if ($entryKey === "business")
{
$prefix = "WORK";
}
elseif ($entryKey === "home")
{
$prefix = "PERSONAL";
}
elseif (!isset($arResultItem["PERSONAL_STREET"]))
{
$prefix = "PERSONAL";
}
$arStreet = $physicalAddress->GetPath("/Entry/Street");
if (!empty($arStreet))
{
$arResultItem[$prefix . "_STREET"] = $this->Encode($arStreet[0]->GetContent());
}
$arCity = $physicalAddress->GetPath("/Entry/City");
if (!empty($arCity))
{
$arResultItem[$prefix . "_CITY"] = $this->Encode($arCity[0]->GetContent());
}
$arState = $physicalAddress->GetPath("/Entry/State");
if (!empty($arState))
{
$arResultItem[$prefix . "_STATE"] = $this->Encode($arState[0]->GetContent());
}
$arCountryOrRegion = $physicalAddress->GetPath("/Entry/CountryOrRegion");
if (!empty($arCountryOrRegion))
{
$country = $this->Encode($arCountryOrRegion[0]->GetContent());
$ar = GetCountryArray();
$i = array_search($country, $ar["reference"]);
if ($i !== false)
{
$arResultItem[$prefix . "_COUNTRY"] = $ar["reference"][$i];
}
}
$arPostalCode = $physicalAddress->GetPath("/Entry/PostalCode");
if (!empty($arPostalCode))
{
$arResultItem[$prefix . "_ZIP"] = $this->Encode($arPostalCode[0]->GetContent());
}
}
$arPhoneNumbers = $contactItem->GetPath("/Contact/PhoneNumbers/Entry");
foreach ($arPhoneNumbers as $phoneNumber)
{
$entryKey = mb_strtolower($phoneNumber->GetAttribute("Key"));
$v = $phoneNumber->GetContent();
if ($entryKey === "businessphone")
{
$arResultItem["WORK_PHONE"] = $v;
}
elseif ($entryKey === "homephone")
{
$arResultItem["PERSONAL_PHONE"] = $v;
}
elseif ($entryKey === "homephone2")
{
$arResultItem["PERSONAL_FAX"] = $v;
}
elseif ($entryKey === "mobilephone")
{
$arResultItem["PERSONAL_MOBILE"] = $v;
}
elseif ($entryKey === "pager")
{
$arResultItem["PERSONAL_PAGER"] = $v;
}
elseif ($entryKey === "businessphone2")
{
$arResultItem["WORK_FAX"] = $v;
}
else
{
if (!empty($v))
{
$arResultItem["WORK_PAGER"] = $v;
}
}
}
$arEmailAddresses = $contactItem->GetPath("/Contact/EmailAddresses/Entry");
foreach ($arEmailAddresses as $emailAddress)
{
$v = $emailAddress->GetContent();
if (!empty($v) && empty($arResultItem["EMAIL"]))
{
$arResultItem["EMAIL"] = $v;
}
}
$arImAddresses = $contactItem->GetPath("/Contact/ImAddresses/Entry");
foreach ($arImAddresses as $imAddress)
{
$v = $imAddress->GetContent();
if (!empty($v) && empty($arResultItem["PERSONAL_ICQ"]))
{
$arResultItem["PERSONAL_ICQ"] = $v;
}
}
$arBusinessHomePage = $contactItem->GetPath("/Contact/BusinessHomePage");
if (!empty($arBusinessHomePage))
{
$arResultItem["WORK_WWW"] = $this->Encode($arBusinessHomePage[0]->GetContent());
}
return $arResultItem;
}