protected function makeUrl() { /** @var \Bitrix\Main\UI\PageNavigation $nav */ $nav = $this->arParams["~NAV_OBJECT"]; if ($this->arParams["~BASE_LINK"] != '') { $uri = new \Bitrix\Main\Web\Uri($this->arParams["~BASE_LINK"]); } else { $uri = new \Bitrix\Main\Web\Uri($this->request->getRequestUri()); $uri->deleteParams(\Bitrix\Main\HttpRequest::getSystemParameters()); $nav->clearParams($uri, $this->arParams["SEF_MODE"]); } $this->arResult["URL"] = $uri->getUri(); $this->arResult["URL_TEMPLATE"] = $nav->addParams($uri, $this->arParams["SEF_MODE"], "--page--", count($this->arResult["PAGE_SIZES"]) > 1 ? "--size--" : null)->getUri(); }
public static function urlDeleteParams($url, $delete_params, $options = array()) { $url_parts = explode("?", $url, 2); if (count($url_parts) == 2 && strlen($url_parts[1]) > 0) { if ($options["delete_system_params"]) { $delete_params = array_merge($delete_params, \Bitrix\Main\HttpRequest::getSystemParameters()); } $params_pairs = explode("&", $url_parts[1]); foreach ($params_pairs as $i => $param_pair) { $name_value_pair = explode("=", $param_pair, 2); if (count($name_value_pair) == 2 && in_array($name_value_pair[0], $delete_params)) { unset($params_pairs[$i]); } } if (empty($params_pairs)) { return $url_parts[0]; } else { return $url_parts[0] . "?" . implode("&", $params_pairs); } } return $url; }