Skip to content
Snippets Groups Projects
Commit ee229278 authored by Igor Melnikov's avatar Igor Melnikov
Browse files

MAGETWO-54849: Refactor \Magento\Framework\Url::escape to use \Magento\Framework\Escaper::escapeUrl

Refactoring Url class
parent 91a474e5
No related merge requests found
...@@ -170,7 +170,12 @@ class Settings extends \Magento\Backend\Block\Widget\Form\Generic implements ...@@ -170,7 +170,12 @@ class Settings extends \Magento\Backend\Block\Widget\Form\Generic implements
{ {
return $this->getUrl( return $this->getUrl(
'adminhtml/*/*', 'adminhtml/*/*',
['_current' => true, 'code' => '<%- data.code %>', 'theme_id' => '<%- data.theme_id %>'] [
'_current' => true,
'code' => '<%- data.code %>',
'theme_id' => '<%- data.theme_id %>',
'_escape_params' => false
]
); );
} }
......
...@@ -867,6 +867,7 @@ class Url extends \Magento\Framework\DataObject implements \Magento\Framework\Ur ...@@ -867,6 +867,7 @@ class Url extends \Magento\Framework\DataObject implements \Magento\Framework\Ur
private function createUrl($routePath = null, array $routeParams = null) private function createUrl($routePath = null, array $routeParams = null)
{ {
$escapeQuery = false; $escapeQuery = false;
$escapeParams = true;
/** /**
* All system params should be unset before we call getRouteUrl * All system params should be unset before we call getRouteUrl
...@@ -885,6 +886,12 @@ class Url extends \Magento\Framework\DataObject implements \Magento\Framework\Ur ...@@ -885,6 +886,12 @@ class Url extends \Magento\Framework\DataObject implements \Magento\Framework\Ur
unset($routeParams['_escape']); unset($routeParams['_escape']);
} }
if (isset($routeParams['_escape_params'])) {
$escapeParams = $routeParams['_escape_params'];
unset($routeParams['_escape_params']);
}
$this->getRouteParamsResolver()->setData('escape_params', $escapeParams);
$query = null; $query = null;
if (isset($routeParams['_query'])) { if (isset($routeParams['_query'])) {
$this->_queryParamsResolver->setQueryParams([]); $this->_queryParamsResolver->setQueryParams([]);
...@@ -929,6 +936,7 @@ class Url extends \Magento\Framework\DataObject implements \Magento\Framework\Ur ...@@ -929,6 +936,7 @@ class Url extends \Magento\Framework\DataObject implements \Magento\Framework\Ur
$url .= '#' . $this->getEscaper()->escapeUrl($fragment); $url .= '#' . $this->getEscaper()->escapeUrl($fragment);
} }
$this->getRouteParamsResolver()->unsetData('secure'); $this->getRouteParamsResolver()->unsetData('secure');
$this->getRouteParamsResolver()->unsetData('escape_params');
return $url; return $url;
} }
......
...@@ -93,7 +93,7 @@ class RouteParamsResolver extends \Magento\Framework\DataObject implements Route ...@@ -93,7 +93,7 @@ class RouteParamsResolver extends \Magento\Framework\DataObject implements Route
if (array_key_exists($key, $data) || $this->getRouteParam($key)) { if (array_key_exists($key, $data) || $this->getRouteParam($key)) {
continue; continue;
} }
$data[$this->getEscaper()->escapeUrl($key)] = $this->getEscaper()->escapeUrl($value); $data[$key] = $value;
} }
foreach ($this->request->getQuery() as $key => $value) { foreach ($this->request->getQuery() as $key => $value) {
$this->queryParamsResolver->setQueryParam($key, $value); $this->queryParamsResolver->setQueryParam($key, $value);
...@@ -111,9 +111,20 @@ class RouteParamsResolver extends \Magento\Framework\DataObject implements Route ...@@ -111,9 +111,20 @@ class RouteParamsResolver extends \Magento\Framework\DataObject implements Route
$this->setRouteParam($key, $value); $this->setRouteParam($key, $value);
} else { } else {
if (is_object($value)) { if (is_object($value)) {
$this->setRouteParam($this->getEscaper()->escapeUrl($key), $value); if ($this->getData('escape_params')) {
$this->setRouteParam($this->getEscaper()->escapeUrl($key), $value);
} else {
$this->setRouteParam($key, $value);
}
} else { } else {
$this->setRouteParam($this->getEscaper()->escapeUrl($key), $this->getEscaper()->escapeUrl($value)); if ($this->getData('escape_params')) {
$this->setRouteParam(
$this->getEscaper()->escapeUrl($key),
$this->getEscaper()->escapeUrl($value)
);
} else {
$this->setRouteParam($key, $value);
}
} }
} }
} }
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment