Skip to content

Commit 160b9db

Browse files
author
Oleksii Korshenko
authored
Merge pull request #1289 from magento-engcom/2.1-develop-prs
Public Pull Requests #10164 #10159
2 parents 4b2cc99 + 69900ef commit 160b9db

File tree

10 files changed

+505
-26
lines changed

10 files changed

+505
-26
lines changed

app/code/Magento/Catalog/view/adminhtml/ui_component/category_form.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@
167167
<argument name="data" xsi:type="array">
168168
<item name="config" xsi:type="array">
169169
<item name="class" xsi:type="string">Magento\Catalog\Ui\Component\Category\Form\Element\Wysiwyg</item>
170+
<item name="label" xsi:type="string" translate="true">Description</item>
170171
<item name="formElement" xsi:type="string">wysiwyg</item>
171172
<item name="wysiwygConfigData" xsi:type="array">
172173
<item name="settings" xsi:type="array">
@@ -217,6 +218,7 @@
217218
<item name="sortOrder" xsi:type="number">70</item>
218219
<item name="dataType" xsi:type="string">string</item>
219220
<item name="formElement" xsi:type="string">select</item>
221+
<item name="label" xsi:type="string" translate="true">Display Mode</item>
220222
</item>
221223
</argument>
222224
</field>
@@ -253,6 +255,7 @@
253255
<item name="additionalClasses" xsi:type="string">admin__field-default</item>
254256
<item name="formElement" xsi:type="string">multiselect</item>
255257
<item name="source" xsi:type="string">category</item>
258+
<item name="label" xsi:type="string" translate="true">Available Product Listing Sort By</item>
256259
</item>
257260
</argument>
258261
</field>
@@ -290,6 +293,7 @@
290293
<item name="additionalClasses" xsi:type="string">admin__field-default</item>
291294
<item name="formElement" xsi:type="string">select</item>
292295
<item name="source" xsi:type="string">category</item>
296+
<item name="label" xsi:type="string" translate="true">Default Product Listing Sort By</item>
293297
</item>
294298
</argument>
295299
</field>
@@ -325,6 +329,7 @@
325329
<argument name="data" xsi:type="array">
326330
<item name="config" xsi:type="array">
327331
<item name="additionalClasses" xsi:type="string">admin__field-small</item>
332+
<item name="label" xsi:type="string" translate="true">Layered Navigation Price Step</item>
328333
<item name="formElement" xsi:type="string">input</item>
329334
<item name="source" xsi:type="string">category</item>
330335
<item name="addbefore" xsi:type="string">$</item>

app/code/Magento/Store/Model/BaseUrlChecker.php

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,10 @@ public function __construct(
3434
public function execute($uri, $request)
3535
{
3636
$requestUri = $request->getRequestUri() ? $request->getRequestUri() : '/';
37-
38-
return (!isset(
39-
$uri['scheme']
40-
) || $uri['scheme'] === $request->getScheme()) && (!isset(
41-
$uri['host']
42-
) || $uri['host'] === $request->getHttpHost()) && (!isset(
43-
$uri['path']
44-
) || strpos(
45-
$requestUri,
46-
$uri['path']
47-
) !== false);
37+
$isValidSchema = !isset($uri['scheme']) || $uri['scheme'] === $request->getScheme();
38+
$isValidHost = !isset($uri['host']) || $uri['host'] === $request->getHttpHost();
39+
$isValidPath = !isset($uri['path']) || strpos($requestUri, $uri['path']) !== false;
40+
return $isValidSchema && $isValidHost && $isValidPath;
4841
}
4942

5043
/**

app/code/Magento/UrlRewrite/Controller/Router.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ protected function redirect($request, $url, $code)
127127
protected function getRewrite($requestPath, $storeId)
128128
{
129129
return $this->urlFinder->findOneByData([
130-
UrlRewrite::REQUEST_PATH => trim($requestPath, '/'),
130+
UrlRewrite::REQUEST_PATH => ltrim($requestPath, '/'),
131131
UrlRewrite::STORE_ID => $storeId,
132132
]);
133133
}

app/code/Magento/UrlRewrite/Model/Storage/AbstractStorage.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ protected function createUrlRewrite($data)
109109
$this->dataObjectHelper->populateWithArray(
110110
$dataObject,
111111
$data,
112-
'\Magento\UrlRewrite\Service\V1\Data\UrlRewrite'
112+
\Magento\UrlRewrite\Service\V1\Data\UrlRewrite::class
113113
);
114114
return $dataObject;
115115
}

app/code/Magento/UrlRewrite/Model/Storage/DbStorage.php

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@
55
*/
66
namespace Magento\UrlRewrite\Model\Storage;
77

8+
use Magento\Framework\Api\DataObjectHelper;
89
use Magento\Framework\App\ResourceConnection;
10+
use Magento\UrlRewrite\Model\OptionProvider;
911
use Magento\UrlRewrite\Service\V1\Data\UrlRewrite;
1012
use Magento\UrlRewrite\Service\V1\Data\UrlRewriteFactory;
11-
use Magento\Framework\Api\DataObjectHelper;
1213

1314
class DbStorage extends AbstractStorage
1415
{
@@ -78,6 +79,54 @@ protected function doFindAllByData($data)
7879
*/
7980
protected function doFindOneByData($data)
8081
{
82+
if (is_array($data)
83+
&& array_key_exists(UrlRewrite::REQUEST_PATH, $data)
84+
&& is_string($data[UrlRewrite::REQUEST_PATH])
85+
) {
86+
$result = null;
87+
88+
$requestPath = $data[UrlRewrite::REQUEST_PATH];
89+
90+
$data[UrlRewrite::REQUEST_PATH] = [
91+
rtrim($requestPath, '/'),
92+
rtrim($requestPath, '/') . '/',
93+
];
94+
95+
$resultsFromDb = $this->connection->fetchAll($this->prepareSelect($data));
96+
97+
if (count($resultsFromDb) === 1) {
98+
$resultFromDb = current($resultsFromDb);
99+
$redirectTypes = [OptionProvider::TEMPORARY, OptionProvider::PERMANENT];
100+
101+
// If request path matches the DB value or it's redirect - we can return result from DB
102+
$canReturnResultFromDb = ($resultFromDb[UrlRewrite::REQUEST_PATH] === $requestPath
103+
|| in_array((int)$resultFromDb[UrlRewrite::REDIRECT_TYPE], $redirectTypes, true));
104+
105+
// Otherwise return 301 redirect to request path from DB results
106+
$result = $canReturnResultFromDb ? $resultFromDb : [
107+
UrlRewrite::ENTITY_TYPE => 'custom',
108+
UrlRewrite::ENTITY_ID => '0',
109+
UrlRewrite::REQUEST_PATH => $requestPath,
110+
UrlRewrite::TARGET_PATH => $resultFromDb[UrlRewrite::REQUEST_PATH],
111+
UrlRewrite::REDIRECT_TYPE => OptionProvider::PERMANENT,
112+
UrlRewrite::STORE_ID => $resultFromDb[UrlRewrite::STORE_ID],
113+
UrlRewrite::DESCRIPTION => null,
114+
UrlRewrite::IS_AUTOGENERATED => '0',
115+
UrlRewrite::METADATA => null,
116+
];
117+
} else {
118+
// If we have 2 results - return the row that matches request path
119+
foreach ($resultsFromDb as $resultFromDb) {
120+
if ($resultFromDb[UrlRewrite::REQUEST_PATH] === $requestPath) {
121+
$result = $resultFromDb;
122+
break;
123+
}
124+
}
125+
}
126+
127+
return $result;
128+
}
129+
81130
return $this->connection->fetchRow($this->prepareSelect($data));
82131
}
83132

app/code/Magento/UrlRewrite/Test/Unit/Model/Storage/AbstractStorageTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public function testFindAllByData()
5353

5454
$this->dataObjectHelper->expects($this->at(0))
5555
->method('populateWithArray')
56-
->with($urlRewrites[0], $rows[0], '\Magento\UrlRewrite\Service\V1\Data\UrlRewrite')
56+
->with($urlRewrites[0], $rows[0], \Magento\UrlRewrite\Service\V1\Data\UrlRewrite::class)
5757
->will($this->returnSelf());
5858

5959
$this->urlRewriteFactory->expects($this->at(0))
@@ -62,7 +62,7 @@ public function testFindAllByData()
6262

6363
$this->dataObjectHelper->expects($this->at(1))
6464
->method('populateWithArray')
65-
->with($urlRewrites[1], $rows[1], '\Magento\UrlRewrite\Service\V1\Data\UrlRewrite')
65+
->with($urlRewrites[1], $rows[1], \Magento\UrlRewrite\Service\V1\Data\UrlRewrite::class)
6666
->will($this->returnSelf());
6767

6868
$this->urlRewriteFactory->expects($this->at(1))
@@ -97,7 +97,7 @@ public function testFindOneByDataIfFound()
9797

9898
$this->dataObjectHelper->expects($this->once())
9999
->method('populateWithArray')
100-
->with($urlRewrite, $row, '\Magento\UrlRewrite\Service\V1\Data\UrlRewrite')
100+
->with($urlRewrite, $row, \Magento\UrlRewrite\Service\V1\Data\UrlRewrite::class)
101101
->will($this->returnSelf());
102102

103103
$this->urlRewriteFactory->expects($this->any())

0 commit comments

Comments
 (0)