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