- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/log_tools.php
- Класс: CSocNetLogTools
- Вызов: CSocNetLogTools::FormatEvent_CreateAvatar
static function FormatEvent_CreateAvatar($arFields, $arParams, $source = "CREATED_BY_", $site_id = SITE_ID)
{
if (
isset($arParams["AVATAR_SIZE_COMMON"])
&& (int)$arParams["AVATAR_SIZE_COMMON"] > 0
)
{
$arParams["AVATAR_SIZE"] = (int)$arParams["AVATAR_SIZE_COMMON"];
}
elseif ((int) ($arParams["AVATAR_SIZE"] ?? null) <= 0)
{
$arParams["AVATAR_SIZE"] = 30;
}
if ($source <> '' && mb_substr($source, -1) !== "_")
{
$source .= "_";
}
$AvatarPath = false;
if ((int) ($arFields[$source . "PERSONAL_PHOTO"] ?? null) <= 0)
{
switch ($arFields[$source."PERSONAL_GENDER"] ?? null)
{
case "M":
$suffix = "male";
break;
case "F":
$suffix = "female";
break;
default:
$suffix = "unknown";
}
$arFields[$source."PERSONAL_PHOTO"] = COption::GetOptionInt("socialnetwork", "default_user_picture_".$suffix, false, $site_id);
}
if ((int)$arFields[$source . "PERSONAL_PHOTO"] > 0)
{
static $cachedAvatars = array();
if (empty($cachedAvatars[$arParams["AVATAR_SIZE"]][$arFields[$source."PERSONAL_PHOTO"]]))
{
$imageFile = CFile::GetFileArray($arFields[$source."PERSONAL_PHOTO"]);
if ($imageFile !== false)
{
$arFileTmp = CFile::ResizeImageGet(
$imageFile,
array("width" => $arParams["AVATAR_SIZE"], "height" => $arParams["AVATAR_SIZE"]),
BX_RESIZE_IMAGE_EXACT,
false
);
$AvatarPath = $arFileTmp["src"];
$cachedAvatars[$arParams["AVATAR_SIZE"]][$arFields[$source."PERSONAL_PHOTO"]] = $AvatarPath;
}
}
else
{
$AvatarPath = $cachedAvatars[$arParams["AVATAR_SIZE"]][$arFields[$source."PERSONAL_PHOTO"]];
}
}
return $AvatarPath;
}