Skip to content

Commit a37313a

Browse files
Merge branch '2.3-develop' into forwardport-2.3-develop-magento-magento2-13041
# Conflicts: # app/design/frontend/Magento/luma/Magento_Newsletter/web/css/source/_module.less
2 parents fcd3e7a + 3881f04 commit a37313a

File tree

511 files changed

+9683
-9906
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

511 files changed

+9683
-9906
lines changed

.htaccess.sample

+2-1
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,8 @@
111111
############################################
112112
## enable rewrites
113113

114-
Options +FollowSymLinks
114+
# The following line has better security but add some performance overhead - see https://httpd.apache.org/docs/2.4/en/misc/perf-tuning.html
115+
Options -FollowSymLinks +SymLinksIfOwnerMatch
115116
RewriteEngine on
116117

117118
############################################

README.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
Welcome to Magento 2 installation! We're glad you chose to install Magento 2, a cutting edge, feature-rich eCommerce solution that gets results.
66

77
## Magento system requirements
8-
[Magento system requirements](http://devdocs.magento.com/magento-system-requirements.html)
8+
[Magento system requirements](http://devdocs.magento.com/guides/v2.2/install-gde/system-requirements2.html)
99

1010
## Install Magento
1111
To install Magento, see either:
1212

1313
* [Magento DevBox](https://magento.com/tech-resources/download), the easiest way to get started with Magento.
14-
* [Installation guide](http://devdocs.magento.com/guides/v2.0/install-gde/bk-install-guide.html)
14+
* [Installation guide](http://devdocs.magento.com/guides/v2.2/install-gde/bk-install-guide.html)
1515

1616
<h2>Contributing to the Magento 2 code base</h2>
1717
Contributions can take the form of new components or features, changes to existing features, tests, documentation (such as developer guides, user guides, examples, or specifications), bug fixes, optimizations, or just good suggestions.
@@ -22,8 +22,8 @@ To learn about issues, click [here][2]. To open an issue, click [here][3].
2222

2323
To suggest documentation improvements, click [here][4].
2424

25-
[1]: <http://devdocs.magento.com/guides/v2.0/contributor-guide/contributing.html>
26-
[2]: <http://devdocs.magento.com/guides/v2.0/contributor-guide/contributing.html#report>
25+
[1]: <http://devdocs.magento.com/guides/v2.2/contributor-guide/contributing.html>
26+
[2]: <http://devdocs.magento.com/guides/v2.2/contributor-guide/contributing.html#report>
2727
[3]: <https://github.com/magento/magento2/issues>
2828
[4]: <http://devdocs.magento.com>
2929

app/bootstrap.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@
1414
if (!defined('PHP_VERSION_ID') || !(PHP_VERSION_ID === 70002 || PHP_VERSION_ID === 70004 || PHP_VERSION_ID >= 70006)) {
1515
if (PHP_SAPI == 'cli') {
1616
echo 'Magento supports 7.0.2, 7.0.4, and 7.0.6 or later. ' .
17-
'Please read http://devdocs.magento.com/guides/v1.0/install-gde/system-requirements.html';
17+
'Please read http://devdocs.magento.com/guides/v2.2/install-gde/system-requirements.html';
1818
} else {
1919
echo <<<HTML
2020
<div style="font:12px/1.35em arial, helvetica, sans-serif;">
2121
<p>Magento supports PHP 7.0.2, 7.0.4, and 7.0.6 or later. Please read
22-
<a target="_blank" href="http://devdocs.magento.com/guides/v1.0/install-gde/system-requirements.html">
22+
<a target="_blank" href="http://devdocs.magento.com/guides/v2.2/install-gde/system-requirements.html">
2323
Magento System Requirements</a>.
2424
</div>
2525
HTML;

app/code/Magento/AdminNotification/Model/Feed.php

-3
Original file line numberDiff line numberDiff line change
@@ -214,9 +214,6 @@ public function getFeedData()
214214
);
215215
$curl->write(\Zend_Http_Client::GET, $this->getFeedUrl(), '1.0');
216216
$data = $curl->read();
217-
if ($data === false) {
218-
return false;
219-
}
220217
$data = preg_split('/^\r?$/m', $data, 2);
221218
$data = trim($data[1]);
222219
$curl->close();

app/code/Magento/AdvancedPricingImportExport/Model/Import/AdvancedPricing.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ protected function saveAndReplaceAdvancedPrices()
394394
? $rowData[self::COL_TIER_PRICE] : 0,
395395
'percentage_value' => $rowData[self::COL_TIER_PRICE_TYPE] === self::TIER_PRICE_TYPE_PERCENT
396396
? $rowData[self::COL_TIER_PRICE] : null,
397-
'website_id' => $this->getWebsiteId($rowData[self::COL_TIER_PRICE_WEBSITE])
397+
'website_id' => $this->getWebSiteId($rowData[self::COL_TIER_PRICE_WEBSITE])
398398
];
399399
}
400400
}

app/code/Magento/AdvancedPricingImportExport/Test/Unit/Model/Import/AdvancedPricing/Validator/WebsiteTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class WebsiteTest extends \PHPUnit\Framework\TestCase
2727

2828
protected function setUp()
2929
{
30-
$this->webSiteModel = $this->getMockBuilder(\Magento\Store\Model\WebSite::class)
30+
$this->webSiteModel = $this->getMockBuilder(\Magento\Store\Model\Website::class)
3131
->setMethods(['getBaseCurrency'])
3232
->disableOriginalConstructor()
3333
->getMock();

app/code/Magento/Backend/Block/System/Store/Edit/AbstractForm.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ protected function _prepareForm()
3737
['data' => ['id' => 'edit_form', 'action' => $this->getData('action'), 'method' => 'post']]
3838
);
3939

40-
$this->_prepareStoreFieldSet($form);
40+
$this->_prepareStoreFieldset($form);
4141

4242
$form->addField(
4343
'store_type',

app/code/Magento/Backend/Controller/Adminhtml/Noroute/Index.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public function execute()
3434
{
3535
/** @var \Magento\Backend\Model\View\Result\Page $resultPage */
3636
$resultPage = $this->resultPageFactory->create();
37-
$resultPage->setStatusHeader(404, '1.1', 'Forbidden');
37+
$resultPage->setStatusHeader(404, '1.1', 'Not Found');
3838
$resultPage->setHeader('Status', '404 File not found');
3939
$resultPage->addHandle('adminhtml_noroute');
4040
return $resultPage;

app/code/Magento/Backend/Controller/Adminhtml/System/Account/Save.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,9 @@ public function execute()
5454
$user = $this->_objectManager->create(\Magento\User\Model\User::class)->load($userId);
5555

5656
$user->setId($userId)
57-
->setUsername($this->getRequest()->getParam('username', false))
58-
->setFirstname($this->getRequest()->getParam('firstname', false))
59-
->setLastname($this->getRequest()->getParam('lastname', false))
57+
->setUserName($this->getRequest()->getParam('username', false))
58+
->setFirstName($this->getRequest()->getParam('firstname', false))
59+
->setLastName($this->getRequest()->getParam('lastname', false))
6060
->setEmail(strtolower($this->getRequest()->getParam('email', false)));
6161

6262
if ($this->_objectManager->get(\Magento\Framework\Validator\Locale::class)->isValid($interfaceLocale)) {

app/code/Magento/Backend/Test/Unit/Block/Widget/Grid/ColumnSetTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ public function testSetFilterTypePropagatesFilterTypeToColumns()
117117

118118
public function testGetRowUrlIfUrlPathNotSet()
119119
{
120-
$this->assertEquals('#', $this->_block->getRowUrl(new \StdClass()));
120+
$this->assertEquals('#', $this->_block->getRowUrl(new \stdClass()));
121121
}
122122

123123
public function testGetRowUrl()

app/code/Magento/Backend/Test/Unit/Block/Widget/Grid/ColumnTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ public function testSetGetGrid()
351351

352352
$this->_block->setFilter('StdClass');
353353

354-
$grid = new \StdClass();
354+
$grid = new \stdClass();
355355
$this->_block->setGrid($grid);
356356
$this->assertEquals($grid, $this->_block->getGrid());
357357
}

app/code/Magento/Backend/etc/adminhtml/system.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@
231231
<label>European Union Countries</label>
232232
<source_model>Magento\Directory\Model\Config\Source\Country</source_model>
233233
</field>
234-
<field id="destinations" translate="label" type="multiselect" sortOrder="40" showInDefault="1" showInWebsite="0" showInStore="0">
234+
<field id="destinations" translate="label" type="multiselect" sortOrder="40" showInDefault="1" showInWebsite="1" showInStore="1">
235235
<label>Top destinations</label>
236236
<source_model>Magento\Directory\Model\Config\Source\Country</source_model>
237237
</field>

app/code/Magento/Backend/view/adminhtml/templates/page/header.phtml

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
data-mage-init='{"dropdown":{}}'
3030
data-toggle="dropdown">
3131
<span class="admin__action-dropdown-text">
32-
<span class="admin-user-account-text"><?= $block->escapeHtml($block->getUser()->getUsername()) ?></span>
32+
<span class="admin-user-account-text"><?= $block->escapeHtml($block->getUser()->getUserName()) ?></span>
3333
</span>
3434
</a>
3535
<ul class="admin__action-dropdown-menu">
@@ -39,7 +39,7 @@
3939
href="<?= /* @escapeNotVerified */ $block->getUrl('adminhtml/system_account/index') ?>"
4040
<?= /* @escapeNotVerified */ $block->getUiId('user', 'account', 'settings') ?>
4141
title="<?= $block->escapeHtml(__('Account Setting')) ?>">
42-
<?= /* @escapeNotVerified */ __('Account Setting') ?> (<span class="admin-user-name"><?= $block->escapeHtml($block->getUser()->getUsername()) ?></span>)
42+
<?= /* @escapeNotVerified */ __('Account Setting') ?> (<span class="admin-user-name"><?= $block->escapeHtml($block->getUser()->getUserName()) ?></span>)
4343
</a>
4444
</li>
4545
<?php endif; ?>

app/code/Magento/Backend/view/adminhtml/templates/system/search.phtml

+4-4
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,16 @@
2828
<script data-template="search-suggest" type="text/x-magento-template">
2929
<ul class="search-global-menu">
3030
<li class="item">
31-
<a id="searchPreviewProducts" href="<?= /* @escapeNotVerified */ $block->getURL('catalog/product/index/') ?>?search=<%- data.term%>" class="title">"<%- data.term%>" in Products</a>
31+
<a id="searchPreviewProducts" href="<?= /* @escapeNotVerified */ $block->getUrl('catalog/product/index/') ?>?search=<%- data.term%>" class="title">"<%- data.term%>" in Products</a>
3232
</li>
3333
<li class="item">
34-
<a id="searchPreviewOrders" href="<?= /* @escapeNotVerified */ $block->getURL('sales/order/index/') ?>?search=<%- data.term%>" class="title">"<%- data.term%>" in Orders</a>
34+
<a id="searchPreviewOrders" href="<?= /* @escapeNotVerified */ $block->getUrl('sales/order/index/') ?>?search=<%- data.term%>" class="title">"<%- data.term%>" in Orders</a>
3535
</li>
3636
<li class="item">
37-
<a id="searchPreviewCustomers" href="<?= /* @escapeNotVerified */ $block->getURL('customer/index/index/') ?>?search=<%- data.term%>" class="title">"<%- data.term%>" in Customers</a>
37+
<a id="searchPreviewCustomers" href="<?= /* @escapeNotVerified */ $block->getUrl('customer/index/index/') ?>?search=<%- data.term%>" class="title">"<%- data.term%>" in Customers</a>
3838
</li>
3939
<li class="item">
40-
<a id="searchPreviewPages" href="<?= /* @escapeNotVerified */ $block->getURL('cms/page/index/') ?>?search=<%- data.term%>" class="title">"<%- data.term%>" in Pages</a>
40+
<a id="searchPreviewPages" href="<?= /* @escapeNotVerified */ $block->getUrl('cms/page/index/') ?>?search=<%- data.term%>" class="title">"<%- data.term%>" in Pages</a>
4141
</li>
4242
<% if (data.items.length) { %>
4343
<% _.each(data.items, function(value){ %>

app/code/Magento/Backend/view/adminhtml/templates/widget/grid/extended.phtml

+4-4
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ $numColumns = sizeof($block->getColumns());
7272
<?php if ($block->getPagerVisibility()): ?>
7373
<div class="admin__data-grid-pager-wrap">
7474
<select name="<?= /* @escapeNotVerified */ $block->getVarNameLimit() ?>"
75-
id="<?= $block->escapeHTML($block->getHtmlId()) ?>_page-limit"
75+
id="<?= $block->escapeHtml($block->getHtmlId()) ?>_page-limit"
7676
onchange="<?= /* @escapeNotVerified */ $block->getJsObjectName() ?>.loadByElement(this)"
7777
class="admin__control-select">
7878
<option value="20"<?php if ($block->getCollection()->getPageSize() == 20): ?>
@@ -91,7 +91,7 @@ $numColumns = sizeof($block->getColumns());
9191
selected="selected"<?php endif; ?>>200
9292
</option>
9393
</select>
94-
<label for="<?= $block->escapeHTML($block->getHtmlId()) ?><?= $block->escapeHTML($block->getHtmlId()) ?>_page-limit"
94+
<label for="<?= $block->escapeHtml($block->getHtmlId()) ?><?= $block->escapeHtml($block->getHtmlId()) ?>_page-limit"
9595
class="admin__control-support-text"><?= /* @escapeNotVerified */ __('per page') ?></label>
9696

9797
<div class="admin__data-grid-pager">
@@ -107,12 +107,12 @@ $numColumns = sizeof($block->getColumns());
107107
<button type="button" class="action-previous disabled"><span><?= /* @escapeNotVerified */ __('Previous page') ?></span></button>
108108
<?php endif; ?>
109109
<input type="text"
110-
id="<?= $block->escapeHTML($block->getHtmlId()) ?>_page-current"
110+
id="<?= $block->escapeHtml($block->getHtmlId()) ?>_page-current"
111111
name="<?= /* @escapeNotVerified */ $block->getVarNamePage() ?>"
112112
value="<?= /* @escapeNotVerified */ $_curPage ?>"
113113
class="admin__control-text"
114114
onkeypress="<?= /* @escapeNotVerified */ $block->getJsObjectName() ?>.inputPage(event, '<?= /* @escapeNotVerified */ $_lastPage ?>')" <?= /* @escapeNotVerified */ $block->getUiId('current-page') ?> />
115-
<label class="admin__control-support-text" for="<?= $block->escapeHTML($block->getHtmlId()) ?>_page-current">
115+
<label class="admin__control-support-text" for="<?= $block->escapeHtml($block->getHtmlId()) ?>_page-current">
116116
<?= /* @escapeNotVerified */ __('of %1', '<span>' . $block->getCollection()->getLastPageNumber() . '</span>') ?>
117117
</label>
118118
<?php if ($_curPage < $_lastPage): ?>

app/code/Magento/Backend/view/adminhtml/web/template/dynamic-rows/grid.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@
8585
<div class="messages">
8686
<div class="message message-notice notice">
8787
<span
88-
translate="'Search strings are either normal strings or regular exceptions (PCRE). They are matched in the same order as entered.'"></span>
88+
translate="'Search strings are either normal strings or regular expressions (PCRE). They are matched in the same order as entered.'"></span>
8989
<br>
9090
<span
9191
translate="'Examples'"></span>:

app/code/Magento/Backup/Model/Db.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ public function createBackup(\Magento\Framework\Backup\Db\BackupInterface $backu
154154

155155
if ($tableStatus->getDataLength() > self::BUFFER_LENGTH) {
156156
if ($tableStatus->getAvgRowLength() < self::BUFFER_LENGTH) {
157-
$limit = floor(self::BUFFER_LENGTH / $tableStatus->getAvgRowLength());
157+
$limit = floor(self::BUFFER_LENGTH / max($tableStatus->getAvgRowLength(), 1));
158158
$multiRowsLength = ceil($tableStatus->getRows() / $limit);
159159
} else {
160160
$limit = 1;

app/code/Magento/Braintree/view/frontend/web/js/view/payment/method-renderer/cc-form.js

+1
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ define(
7979
*/
8080
onError: function (response) {
8181
braintree.showError($t('Payment ' + this.getTitle() + ' can\'t be initialized'));
82+
this.isPlaceOrderActionAllowed(true);
8283
throw response.message;
8384
},
8485

app/code/Magento/Catalog/Block/Product/View/Options/Type/Select.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ public function getValuesHtml()
4444
]
4545
);
4646
if ($_option->getType() == \Magento\Catalog\Api\Data\ProductCustomOptionInterface::OPTION_TYPE_DROP_DOWN) {
47-
$select->setName('options[' . $_option->getid() . ']')->addOption('', __('-- Please Select --'));
47+
$select->setName('options[' . $_option->getId() . ']')->addOption('', __('-- Please Select --'));
4848
} else {
49-
$select->setName('options[' . $_option->getid() . '][]');
49+
$select->setName('options[' . $_option->getId() . '][]');
5050
$select->setClass('multiselect admin__control-multiselect' . $require . ' product-custom-option');
5151
}
5252
foreach ($_option->getValues() as $_value) {

app/code/Magento/Catalog/Helper/Product/View.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -120,18 +120,18 @@ public function initProductLayout(ResultPage $resultPage, $product, $params = nu
120120
// Load default page handles and page configurations
121121
if ($params && $params->getBeforeHandles()) {
122122
foreach ($params->getBeforeHandles() as $handle) {
123-
$resultPage->addPageLayoutHandles(['id' => $product->getId(), 'sku' => $urlSafeSku], $handle);
124123
$resultPage->addPageLayoutHandles(['type' => $product->getTypeId()], $handle, false);
124+
$resultPage->addPageLayoutHandles(['id' => $product->getId(), 'sku' => $urlSafeSku], $handle);
125125
}
126126
}
127-
128-
$resultPage->addPageLayoutHandles(['id' => $product->getId(), 'sku' => $urlSafeSku]);
127+
129128
$resultPage->addPageLayoutHandles(['type' => $product->getTypeId()], null, false);
129+
$resultPage->addPageLayoutHandles(['id' => $product->getId(), 'sku' => $urlSafeSku]);
130130

131131
if ($params && $params->getAfterHandles()) {
132132
foreach ($params->getAfterHandles() as $handle) {
133-
$resultPage->addPageLayoutHandles(['id' => $product->getId(), 'sku' => $urlSafeSku], $handle);
134133
$resultPage->addPageLayoutHandles(['type' => $product->getTypeId()], $handle, false);
134+
$resultPage->addPageLayoutHandles(['id' => $product->getId(), 'sku' => $urlSafeSku], $handle);
135135
}
136136
}
137137

app/code/Magento/Catalog/Model/Category.php

+5-2
Original file line numberDiff line numberDiff line change
@@ -780,11 +780,14 @@ public function getAllChildren($asArray = false)
780780
/**
781781
* Retrieve children ids comma separated
782782
*
783+
* @param boolean $recursive
784+
* @param boolean $isActive
785+
* @param boolean $sortByPosition
783786
* @return string
784787
*/
785-
public function getChildren()
788+
public function getChildren($recursive = false, $isActive = true, $sortByPosition = false)
786789
{
787-
return implode(',', $this->getResource()->getChildren($this, false));
790+
return implode(',', $this->getResource()->getChildren($this, $recursive, $isActive, $sortByPosition));
788791
}
789792

790793
/**

app/code/Magento/Catalog/Model/Category/Link/SaveHandler.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,9 @@ private function mergeCategoryLinks($newCategoryPositions, $oldCategoryPositions
119119

120120
if ($key === false) {
121121
$result[] = $newCategoryPosition;
122-
} elseif ($oldCategoryPositions[$key]['position'] != $newCategoryPosition['position']) {
122+
} elseif (isset($oldCategoryPositions[$key])
123+
&& $oldCategoryPositions[$key]['position'] != $newCategoryPosition['position']
124+
) {
123125
$result[] = $newCategoryPositions[$key];
124126
unset($oldCategoryPositions[$key]);
125127
}

app/code/Magento/Catalog/Model/Product/Attribute/OptionManagement.php

+11
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,17 @@ public function getItems($attributeCode)
4040
*/
4141
public function add($attributeCode, $option)
4242
{
43+
/** @var \Magento\Eav\Api\Data\AttributeOptionInterface[] $currentOptions */
44+
$currentOptions = $this->getItems($attributeCode);
45+
if (is_array($currentOptions)) {
46+
array_walk($currentOptions, function (&$attributeOption) {
47+
/** @var \Magento\Eav\Api\Data\AttributeOptionInterface $attributeOption */
48+
$attributeOption = $attributeOption->getLabel();
49+
});
50+
if (in_array($option->getLabel(), $currentOptions)) {
51+
return false;
52+
}
53+
}
4354
return $this->eavOptionManagement->add(
4455
\Magento\Catalog\Api\Data\ProductAttributeInterface::ENTITY_TYPE_CODE,
4556
$attributeCode,

app/code/Magento/Catalog/Model/Product/Gallery/Processor.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ public function addImage(
149149
}
150150

151151
$fileName = \Magento\MediaStorage\Model\File\Uploader::getCorrectFileName($pathinfo['basename']);
152-
$dispretionPath = \Magento\MediaStorage\Model\File\Uploader::getDispretionPath($fileName);
152+
$dispretionPath = \Magento\MediaStorage\Model\File\Uploader::getDispersionPath($fileName);
153153
$fileName = $dispretionPath . '/' . $fileName;
154154

155155
$fileName = $this->getNotDuplicatedFilename($fileName, $dispretionPath);

app/code/Magento/Catalog/Model/Product/Option/Type/File/ValidatorFile.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ public function validate($processingParams, $option)
150150
$extension = pathinfo(strtolower($fileInfo['name']), PATHINFO_EXTENSION);
151151

152152
$fileName = \Magento\MediaStorage\Model\File\Uploader::getCorrectFileName($fileInfo['name']);
153-
$dispersion = \Magento\MediaStorage\Model\File\Uploader::getDispretionPath($fileName);
153+
$dispersion = \Magento\MediaStorage\Model\File\Uploader::getDispersionPath($fileName);
154154

155155
$filePath = $dispersion;
156156

app/code/Magento/Catalog/Model/ResourceModel/AbstractResource.php

+1-2
Original file line numberDiff line numberDiff line change
@@ -571,8 +571,7 @@ public function getAttributeRawValue($entityId, $attribute, $store)
571571
}
572572

573573
if (is_array($attributesData) && sizeof($attributesData) == 1) {
574-
$_data = each($attributesData);
575-
$attributesData = $_data[1];
574+
$attributesData = array_shift($attributesData);
576575
}
577576

578577
return $attributesData === false ? false : $attributesData;

0 commit comments

Comments
 (0)