• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/component/base.php
  • Класс: BitrixIblockComponentBase
  • Вызов: Base::initUrlTemplates
protected function initUrlTemplates()
{
	$actionVar = $this->arParams['ACTION_VARIABLE'];
	$productIdVar = $this->arParams['PRODUCT_ID_VARIABLE'];
	$compareActionVar = $this->arParams['ACTION_COMPARE_VARIABLE'];

	$clearParams = MainHttpRequest::getSystemParameters();
	$clearParams[] = $actionVar;
	$clearParams[] = $productIdVar;
	$clearParams[] = $compareActionVar;
	$clearParams[] = '';

	if (!empty($this->arParams['CUSTOM_CURRENT_PAGE']))
	{
		$pageUrl = $this->arParams['CUSTOM_CURRENT_PAGE'];
	}
	else
	{
		if ($this->request->isAjaxRequest())
		{
			$pageUrl = $this->arParams['CURRENT_BASE_PAGE'];
		}
		else
		{
			$pageUrl = MainApplication::getInstance()->getContext()->getRequest()->getDecodedUri();

		}
	}
	$currentUri = new MainWebUri($pageUrl);

	if ($this->arParams['USE_COMPARE_LIST'] == 'N' && $this->arParams['COMPARE_PATH'] != '')
	{
		$compareUri = new MainWebUri($this->arParams['COMPARE_PATH']);
	}
	else
	{
		$compareUri = $currentUri;
	}

	$currentUri->deleteParams($clearParams);
	$compareUri->deleteParams($clearParams);

	$urls = [];
	$urls['BUY_URL_TEMPLATE'] = $currentUri->addParams([$actionVar => self::ACTION_BUY, $productIdVar => '#ID#'])->getUri();
	$urls['ADD_URL_TEMPLATE'] = $currentUri->addParams([$actionVar => self::ACTION_ADD_TO_BASKET, $productIdVar => '#ID#'])->getUri();
	$urls['SUBSCRIBE_URL_TEMPLATE'] = $currentUri->addParams([$actionVar => self::ACTION_SUBSCRIBE, $productIdVar => '#ID#'])->getUri();

	$urls['COMPARE_URL_TEMPLATE'] = $compareUri->addParams([$compareActionVar => self::ACTION_ADD_TO_COMPARE, $productIdVar => '#ID#'])->getUri();
	$urls['COMPARE_DELETE_URL_TEMPLATE'] = $compareUri->addParams([$compareActionVar => self::ACTION_DELETE_FROM_COMPARE, $productIdVar => '#ID#'])->getUri();

	unset($compareUri, $currentUri, $clearParams);

	foreach (array_keys($urls) as $index)
	{
		$value = str_replace('%23ID%23', '#ID#', $urls[$index]); // format compatibility
		$urls['~'.$index] = $value;
		$urls[$index] = MainTextHtmlFilter::encode($value, ENT_QUOTES);
	}
	unset($index);

	$this->storage['URLS'] = $urls;
}