Skip to content

Commit 8438544

Browse files
committed
Merge remote-tracking branch 'remotes/origin/BugFestW4' into MAGETWO-44106
2 parents 323f697 + b9f2ad7 commit 8438544

File tree

6 files changed

+71
-4
lines changed

6 files changed

+71
-4
lines changed

app/code/Magento/Backend/Block/Widget/Tabs.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,9 @@ public function addTabAfter($tabId, $tab, $afterTabId)
111111
*/
112112
public function addTab($tabId, $tab)
113113
{
114+
if (empty($tabId)) {
115+
throw new \Exception(__('Please correct the tab configuration and try again. Tab Id should be not empry'));
116+
}
114117
if (is_array($tab)) {
115118
$this->_tabs[$tabId] = new \Magento\Framework\DataObject($tab);
116119
} elseif ($tab instanceof \Magento\Framework\DataObject) {

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,23 @@ class Group extends \Magento\Eav\Model\Entity\Attribute\Group
1818
protected $_attributeCollectionFactory;
1919

2020
/**
21+
* Group constructor.
2122
* @param \Magento\Framework\Model\Context $context
2223
* @param \Magento\Framework\Registry $registry
2324
* @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory
2425
* @param AttributeValueFactory $customAttributeFactory
26+
* @param \Magento\Framework\Filter\Translit $translitFilter
2527
* @param \Magento\Catalog\Model\ResourceModel\Product\Attribute\CollectionFactory $attributeCollectionFactory
26-
* @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource
27-
* @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
28+
* @param \Magento\Framework\Model\ResourceModel\AbstractResource|null $resource
29+
* @param \Magento\Framework\Data\Collection\AbstractDb|null $resourceCollection
2830
* @param array $data
2931
*/
3032
public function __construct(
3133
\Magento\Framework\Model\Context $context,
3234
\Magento\Framework\Registry $registry,
3335
\Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory,
3436
AttributeValueFactory $customAttributeFactory,
37+
\Magento\Framework\Filter\Translit $translitFilter,
3538
\Magento\Catalog\Model\ResourceModel\Product\Attribute\CollectionFactory $attributeCollectionFactory,
3639
\Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
3740
\Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
@@ -43,6 +46,7 @@ public function __construct(
4346
$registry,
4447
$extensionFactory,
4548
$customAttributeFactory,
49+
$translitFilter,
4650
$resource,
4751
$resourceCollection,
4852
$data

app/code/Magento/Eav/Model/Entity/Attribute/Group.php

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
namespace Magento\Eav\Model\Entity\Attribute;
88

9+
use Magento\Framework\Api\AttributeValueFactory;
10+
911
/**
1012
* @author Magento Core Team <core@magentocommerce.com>
1113
*
@@ -23,6 +25,43 @@
2325
class Group extends \Magento\Framework\Model\AbstractExtensibleModel implements
2426
\Magento\Eav\Api\Data\AttributeGroupInterface
2527
{
28+
/**
29+
* @var \Magento\Framework\Filter\Translit
30+
*/
31+
private $translitFilter;
32+
33+
/**
34+
* @param \Magento\Framework\Model\Context $context
35+
* @param \Magento\Framework\Registry $registry
36+
* @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory
37+
* @param AttributeValueFactory $customAttributeFactory
38+
* @param \Magento\Framework\Filter\Translit $translitFilter
39+
* @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource
40+
* @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
41+
* @param array $data
42+
*/
43+
public function __construct(
44+
\Magento\Framework\Model\Context $context,
45+
\Magento\Framework\Registry $registry,
46+
\Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory,
47+
AttributeValueFactory $customAttributeFactory,
48+
\Magento\Framework\Filter\Translit $translitFilter,
49+
\Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
50+
\Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
51+
array $data = []
52+
) {
53+
parent::__construct(
54+
$context,
55+
$registry,
56+
$extensionFactory,
57+
$customAttributeFactory,
58+
$resource,
59+
$resourceCollection,
60+
$data
61+
);
62+
$this->translitFilter = $translitFilter;
63+
}
64+
2665
/**
2766
* Resource initialization
2867
*
@@ -66,7 +105,14 @@ public function beforeSave()
66105
if (!$this->getAttributeGroupCode()) {
67106
$groupName = $this->getAttributeGroupName();
68107
if ($groupName) {
69-
$attributeGroupCode = trim(preg_replace('/[^a-z0-9]+/', '-', strtolower($groupName)), '-');
108+
$attributeGroupCode = trim(
109+
preg_replace(
110+
'/[^a-z0-9]+/',
111+
'-',
112+
$this->translitFilter->filter(strtolower($groupName))
113+
),
114+
'-'
115+
);
70116
if (empty($attributeGroupCode)) {
71117
// in the following code md5 is not used for security purposes
72118
$attributeGroupCode = md5($groupName);

app/code/Magento/Eav/Setup/EavSetup.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,14 @@ public function addAttributeGroup($entityTypeId, $setId, $name, $sortOrder = nul
527527
if ($sortOrder === null) {
528528
$data['sort_order'] = $this->getAttributeGroupSortOrder($entityTypeId, $setId, $sortOrder);
529529
}
530+
if (empty($data['attribute_group_code'])) {
531+
$attributeGroupCode = trim(preg_replace('/[^a-z0-9]+/', '-', strtolower($name)), '-');
532+
if (empty($attributeGroupCode)) {
533+
// in the following code md5 is not used for security purposes
534+
$attributeGroupCode = md5($name);
535+
}
536+
$data['attribute_group_code'] = $attributeGroupCode;
537+
}
530538
$this->setup->getConnection()->insert($this->setup->getTable('eav_attribute_group'), $data);
531539
}
532540

app/code/Magento/Eav/Setup/InstallSchema.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -895,7 +895,7 @@ public function install(SchemaSetupInterface $setup, ModuleContextInterface $con
895895
'attribute_group_code',
896896
\Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
897897
255,
898-
['default' => null],
898+
['nullable' => false],
899899
'Attribute Group Code'
900900
)->addColumn(
901901
'tab_group_code',

app/code/Magento/Eav/Test/Unit/Model/Entity/Attribute/GroupTest.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,17 @@ protected function setUp()
3434
'',
3535
false
3636
);
37+
$translitFilter = $this->getMockBuilder(\Magento\Framework\Filter\Translit::class)
38+
->disableOriginalConstructor()
39+
->getMock();
40+
$translitFilter->expects($this->atLeastOnce())->method('filter')->willReturnArgument(0);
41+
3742
$this->eventManagerMock = $this->getMock('Magento\Framework\Event\ManagerInterface');
3843
$contextMock = $this->getMock('Magento\Framework\Model\Context', [], [], '', false);
3944
$contextMock->expects($this->any())->method('getEventDispatcher')->willReturn($this->eventManagerMock);
4045
$constructorArguments = [
4146
'resource' => $this->resourceMock,
47+
'translitFilter' => $translitFilter,
4248
'context' => $contextMock,
4349
];
4450
$objectManager = new ObjectManager($this);

0 commit comments

Comments
 (0)