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

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

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

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

		if (method_exists($className, $method))
		{
			return $className::$method($parameters);
		}
	}
	return false;
}