• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/classes/general/im_message_param.php
  • Класс: CIMMessageLink
  • Вызов: CIMMessageLink::formatAttach
static function formatAttach($linkParam)
{
	$attach = null;
	$typeLinkParam = $linkParam['TYPE'] ?? null;
	$extraImageLinkParam = $linkParam['EXTRA_IMAGE'] ?? null;

	if ($typeLinkParam == UrlPreviewUrlMetadataTable::TYPE_STATIC)
	{
		if ($linkParam['EXTRA']['PEER_IP_PRIVATE'] && IMUser::getInstance()->isExtranet())
		{
			return $attach;
		}
		if (intval($linkParam['IMAGE_ID']) > 0)
		{
			$image = CFile::ResizeImageGet(
				$linkParam['IMAGE_ID'],
				array('width' => 450, 'height' => 120),
				BX_RESIZE_IMAGE_PROPORTIONAL,
				false,
				false,
				true
			);
			$linkParam['IMAGE_ID'] = empty($image['src'])? '': $image['src'];
		}
		else if ($linkParam['IMAGE'] <> '')
		{
			$linkParam['IMAGE_ID'] = $linkParam['IMAGE'];
		}
		else if (!empty($linkParam['EXTRA']['IMAGES']))
		{
			//we take only first extra image
			$linkParam['EXTRA_IMAGE'] = $linkParam['EXTRA']['IMAGES'][0];
		}
		else
		{
			$linkParam['IMAGE_ID'] = '';
		}

		$attach = new CIMMessageParamAttach($linkParam['ID'], CIMMessageParamAttach::TRANSPARENT);
		$attach->AddRichLink(Array(
			"NAME" => $linkParam['TITLE'],
			"DESC" => $linkParam['DESCRIPTION'],
			"LINK" => $linkParam['URL'],
			"PREVIEW" => $linkParam['IMAGE_ID'],
			"EXTRA_IMAGE" => $extraImageLinkParam,
		));
	}
	else if ($linkParam['TYPE'] == UrlPreviewUrlMetadataTable::TYPE_DYNAMIC)
	{
		$attach = UrlPreviewUrlPreview::getImAttach($linkParam['URL'], true);
		if ($attach && $attach instanceof CIMMessageParamAttach)
		{
			$attach->SetId($linkParam['ID']);
		}
	}
	return $attach;
}