• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/urlpreview/urlpreview.php
  • Класс: BitrixMainUrlPreviewUrlPreview
  • Вызов: UrlPreview::getMetadataByUrl
static function getMetadataByUrl($url, $addIfNew = true, $reuseExistingMetadata = true)
{
	if (!static::isEnabled())
	{
		return false;
	}

	$url = static::normalizeUrl($url);
	if ($url == '')
	{
		return false;
	}

	if ($reuseExistingMetadata)
	{
		if ($metadata = UrlMetadataTable::getByUrl($url))
		{
			if ($metadata['TYPE'] === UrlMetadataTable::TYPE_TEMPORARY && $addIfNew)
			{
				$metadata = static::resolveTemporaryMetadata($metadata['ID']);
				return $metadata;
			}
			if ($metadata['TYPE'] !== UrlMetadataTable::TYPE_STATIC
				|| !isset($metadata['DATE_EXPIRE'])
				|| $metadata['DATE_EXPIRE']->getTimestamp() > time()
			)
			{
				return $metadata;
			}
			if (static::refreshMetadata($metadata))
			{
				return $metadata;
			}
		}
	}

	if (!$addIfNew)
	{
		return false;
	}

	$metadataId = static::reserveIdForUrl($url);
	$metadata = static::fetchUrlMetadata($url);
	if (is_array($metadata) && !empty($metadata))
	{
		$result = UrlMetadataTable::update($metadataId, $metadata);
		$metadata['ID'] = $result->getId();
		return $metadata;
	}

	return false;
}