• Модуль: 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;
}