- Модуль: dav
- Путь к файлу: ~/bitrix/modules/dav/classes/general/addressbookbase.php
- Класс: ofCDavAddressbookBase
- Вызов: CDavAddressbookBase::GetVCardContent
private function GetVCardContent($entity)
{
$arVCardContact = [];
$map = [
"TYPE" => self::V_CARD_CONTENT_TYPE,
"VERSION" => self::V_CARD_CONTENT_VERSION,
];
$map = array_merge($map, $this->GetVCardDataMap($entity));
if (!empty($map['IMG']))
{
if (is_array($map['IMG']))
{
if (!empty($map['IMG']['src']))
{
$arTempFile = $map['IMG'];
}
}
else if ((int)$map['IMG'] > 0)
{
$arTempFile = CFile::ResizeImageGet(
$map['IMG'],
[
"width" => BitrixMainConfigOption::get("dav", "vcard_image_width", 400),
"height" => BitrixMainConfigOption::get("dav", "vcard_image_width", 400)
],
BX_RESIZE_IMAGE_PROPORTIONAL,
false,
false,
true,
BitrixMainConfigOption::get("dav", "vcard_image_quality", 60)
);
}
if (!empty($arTempFile) && file_exists($_SERVER["DOCUMENT_ROOT"] . $arTempFile['src']))
{
if (empty(file_get_contents($this->getDomainLink() . $arTempFile['src'])))
{
$arImageTypes = [
IMAGETYPE_JPEG => 'JPEG',
IMAGETYPE_GIF => 'GIF',
IMAGETYPE_PNG => 'PNG'
];
$imageType = "JPEG";
if ($imageInfo = CFile::GetImageSize($_SERVER["DOCUMENT_ROOT"] . $arTempFile['src']) and isset($arImageTypes[$imageInfo[2]]))
{
$imageType = $arImageTypes[$imageInfo[2]];
}
$map["PHOTO"] = [
"VALUE" => base64_encode($_SERVER["DOCUMENT_ROOT"] . $arTempFile['src']),
"PARAMETERS" => ["ENCODING" => "BASE64", "TYPE" => $imageType]
];
}
else
{
$map["PHOTO"] = ["VALUE" => $this->encodeUrn($this->getDomainLink() . $arTempFile['src'])];
}
}
else if (!empty($arTempFile))
{
$map['PHOTO'] = ['VALUE' => $this->encodeUrn($arTempFile['src'])];
}
}
unset($map['IMG']);
foreach ($map as $propertyTitle => $property)
{
$arVCardContact[$propertyTitle] = $property;
}
$cal = new CDavICalendarComponent($arVCardContact);
return $cal->Render();
}