• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/urlpreview/urlpreview.php
  • Класс: BitrixMainUrlPreviewUrlPreview
  • Вызов: UrlPreview::getDynamicPreview
static function getDynamicPreview($url, $checkAccess = true, $userId = 0)
{
	$routeRecord = Router::dispatch(new Uri(static::unfoldShortLink($url)));
	if ($routeRecord === false)
	{
		return false;
	}

	if (isset($routeRecord['MODULE']) && Loader::includeModule($routeRecord['MODULE']))
	{
		$className = $routeRecord['CLASS'];
		$parameters = $routeRecord['PARAMETERS'];
		$parameters['URL'] = $url;

		if ($userId == 0)
		{
			$userId = static::getCurrentUserId();
		}

		if ($checkAccess && (!method_exists($className, 'checkUserReadAccess') || $userId == 0 || !$className::checkUserReadAccess($parameters, $userId)))
			return false;

		if (method_exists($className, 'buildPreview'))
		{
			$preview = $className::buildPreview($parameters);
			return ($preview <> '' ? $preview : false);
		}
	}
	return false;
}