• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/component/elementlist.php
  • Класс: BitrixIblockComponentElementList
  • Вызов: ElementList::isAjaxURL
private function isAjaxURL($url)
{
	if (preg_match('/^(#|mailto:|javascript:|callto:)/', $url))
		return false;

	if (mb_strpos($url, '://') !== false)
		return false;

	$url = preg_replace('/#.*/', '', $url);

	if (mb_strpos($url, '?') !== false)
	{
		$url = mb_substr($url, 0, mb_strpos($url, '?'));
	}

	if (mb_substr($url, -4) != '.php')
	{
		if (mb_substr($url, -1) != '/')
		{
			$url .= '/';
		}

		$url .= 'index.php';
	}

	$currentUrl = $this->arParams['CURRENT_BASE_PAGE'];

	if (mb_strpos($currentUrl, '?') !== false)
	{
		$currentUrl = mb_substr($currentUrl, 0, mb_strpos($currentUrl, '?'));
	}

	if (mb_substr($currentUrl, -4) != '.php')
	{
		if (mb_substr($currentUrl, -1) != '/')
		{
			$currentUrl .= '/';
		}

		$currentUrl .= 'index.php';
	}

	$currentUrlDirName = dirname($currentUrl);
	$currentUrlBaseName = basename($currentUrl);
	$dirName = dirname($url);

	if (
		($dirName == $currentUrlDirName || $dirName == '' || $dirName == '.')
		&& basename($url) == $currentUrlBaseName
	)
	{
		return true;
	}

	return false;
}