- Модуль: 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;
}