• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/urlpreview/urlpreviewusertype.php
  • Класс: BitrixMainUrlPreviewUrlPreviewUserType
  • Вызов: UrlPreviewUserType::onBeforeSave
static function onBeforeSave($userField, $value)
{
	$imageUrl = null;
	if(strpos($value, ';') !== false)
	{
		list($value, $imageUrl) = explode(';', $value);
	}

	$signer = new Signer();
	try
	{
		$value = $signer->unsign($value, UrlPreview::SIGN_SALT);
	}
	catch (SystemException $e)
	{
		return null;
	}
	$metadata = UrlMetadataTable::getById($value)->fetch();
	if(!is_array($metadata))
		return null;

	if($metadata['TYPE'] === UrlMetadataTable::TYPE_STATIC)
	{
		if($imageUrl && is_array($metadata['EXTRA']['IMAGES']) && in_array($imageUrl, $metadata['EXTRA']['IMAGES']))
		{
			UrlPreview::setMetadataImage((int)$value, $imageUrl);
		}
		return $value;
	}
	else if($metadata['TYPE'] === UrlMetadataTable::TYPE_DYNAMIC
			&& UrlPreview::checkDynamicPreviewAccess($metadata['URL']))
	{
		return $value;
	}

	return null;
}