Skip to content

Commit 889c73e

Browse files
committed
MAGETWO-62556: Subscription Request
1 parent 33a228b commit 889c73e

File tree

1 file changed

+97
-64
lines changed
  • app/code/Magento/Backend/Controller/Adminhtml/System/Store

1 file changed

+97
-64
lines changed

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

Lines changed: 97 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,102 @@
66
*/
77
namespace Magento\Backend\Controller\Adminhtml\System\Store;
88

9-
9+
/**
10+
* Class Save
11+
*
12+
* Save controller for system entities such as: Store, StoreGroup, Website
13+
*/
1014
class Save extends \Magento\Backend\Controller\Adminhtml\System\Store
1115
{
16+
/**
17+
* Process Website model save
18+
*
19+
* @param array $postData
20+
* @return void
21+
*/
22+
private function processWebsiteSave($postData)
23+
{
24+
$postData['website']['name'] = $this->filterManager->removeTags($postData['website']['name']);
25+
$websiteModel = $this->_objectManager->create(\Magento\Store\Model\Website::class);
26+
if ($postData['website']['website_id']) {
27+
$websiteModel->load($postData['website']['website_id']);
28+
}
29+
$websiteModel->setData($postData['website']);
30+
if ($postData['website']['website_id'] == '') {
31+
$websiteModel->setId(null);
32+
}
33+
34+
$websiteModel->save();
35+
$this->messageManager->addSuccess(__('You saved the website.'));
36+
}
37+
38+
/**
39+
* Process Store model save
40+
*
41+
* @param array $postData
42+
* @throws \Magento\Framework\Exception\LocalizedException
43+
* @return void
44+
*/
45+
private function processStoreSave($postData)
46+
{
47+
$eventName = 'store_edit';
48+
/** @var \Magento\Store\Model\Store $storeModel */
49+
$storeModel = $this->_objectManager->create(\Magento\Store\Model\Store::class);
50+
$postData['store']['name'] = $this->filterManager->removeTags($postData['store']['name']);
51+
if ($postData['store']['store_id']) {
52+
$storeModel->load($postData['store']['store_id']);
53+
}
54+
$storeModel->setData($postData['store']);
55+
if ($postData['store']['store_id'] == '') {
56+
$storeModel->setId(null);
57+
$eventName = 'store_add';
58+
}
59+
$groupModel = $this->_objectManager->create(
60+
\Magento\Store\Model\Group::class
61+
)->load(
62+
$storeModel->getGroupId()
63+
);
64+
$storeModel->setWebsiteId($groupModel->getWebsiteId());
65+
if (!$storeModel->isActive() && $storeModel->isDefault()) {
66+
throw new \Magento\Framework\Exception\LocalizedException(
67+
__('The default store cannot be disabled')
68+
);
69+
}
70+
$storeModel->save();
71+
$this->_objectManager->get(\Magento\Store\Model\StoreManager::class)->reinitStores();
72+
$this->_eventManager->dispatch($eventName, ['store' => $storeModel]);
73+
$this->messageManager->addSuccess(__('You saved the store view.'));
74+
}
75+
76+
/**
77+
* Process StoreGroup model save
78+
*
79+
* @param array $postData
80+
* @throws \Magento\Framework\Exception\LocalizedException
81+
* @return void
82+
*/
83+
private function processGroupSave($postData)
84+
{
85+
$postData['group']['name'] = $this->filterManager->removeTags($postData['group']['name']);
86+
/** @var \Magento\Store\Model\Group $groupModel */
87+
$groupModel = $this->_objectManager->create(\Magento\Store\Model\Group::class);
88+
if ($postData['group']['group_id']) {
89+
$groupModel->load($postData['group']['group_id']);
90+
}
91+
$groupModel->setData($postData['group']);
92+
if ($postData['group']['group_id'] == '') {
93+
$groupModel->setId(null);
94+
}
95+
if (!$this->isSelectedDefaultStoreActive($postData, $groupModel)) {
96+
throw new \Magento\Framework\Exception\LocalizedException(
97+
__('An inactive store view cannot be saved as default store view')
98+
);
99+
}
100+
$groupModel->save();
101+
$this->_eventManager->dispatch('store_group_save', ['group' => $groupModel]);
102+
$this->messageManager->addSuccess(__('You saved the store.'));
103+
}
104+
12105
/**
13106
* @return \Magento\Backend\Model\View\Result\Redirect
14107
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
@@ -22,76 +115,16 @@ public function execute()
22115
$redirectResult->setPath('adminhtml/*/');
23116
return $redirectResult;
24117
}
25-
26118
try {
27119
switch ($postData['store_type']) {
28120
case 'website':
29-
$postData['website']['name'] = $this->filterManager->removeTags($postData['website']['name']);
30-
/**
31-
* @var $websiteModel \Magento\Store\Model\Website
32-
*/
33-
$websiteModel = $this->_objectManager->create(\Magento\Store\Model\Website::class);
34-
if ($postData['website']['website_id']) {
35-
$websiteModel->load($postData['website']['website_id']);
36-
}
37-
$websiteModel->setData($postData['website']);
38-
if ($postData['website']['website_id'] == '') {
39-
$websiteModel->setId(null);
40-
}
41-
42-
$websiteModel->save();
43-
$this->messageManager->addSuccess(__('You saved the website.'));
121+
$this->processWebsiteSave($postData);
44122
break;
45-
46123
case 'group':
47-
$postData['group']['name'] = $this->filterManager->removeTags($postData['group']['name']);
48-
/** @var \Magento\Store\Model\Group $groupModel */
49-
$groupModel = $this->_objectManager->create(\Magento\Store\Model\Group::class);
50-
if ($postData['group']['group_id']) {
51-
$groupModel->load($postData['group']['group_id']);
52-
}
53-
$groupModel->setData($postData['group']);
54-
if ($postData['group']['group_id'] == '') {
55-
$groupModel->setId(null);
56-
}
57-
if (!$this->isSelectedDefaultStoreActive($postData, $groupModel)) {
58-
throw new \Magento\Framework\Exception\LocalizedException(
59-
__('An inactive store view cannot be saved as default store view')
60-
);
61-
}
62-
$groupModel->save();
63-
$this->_eventManager->dispatch('store_group_save', ['group' => $groupModel]);
64-
$this->messageManager->addSuccess(__('You saved the store.'));
124+
$this->processGroupSave($postData);
65125
break;
66-
67126
case 'store':
68-
$eventName = 'store_edit';
69-
/** @var \Magento\Store\Model\Store $storeModel */
70-
$storeModel = $this->_objectManager->create(\Magento\Store\Model\Store::class);
71-
$postData['store']['name'] = $this->filterManager->removeTags($postData['store']['name']);
72-
if ($postData['store']['store_id']) {
73-
$storeModel->load($postData['store']['store_id']);
74-
}
75-
$storeModel->setData($postData['store']);
76-
if ($postData['store']['store_id'] == '') {
77-
$storeModel->setId(null);
78-
$eventName = 'store_add';
79-
}
80-
$groupModel = $this->_objectManager->create(
81-
\Magento\Store\Model\Group::class
82-
)->load(
83-
$storeModel->getGroupId()
84-
);
85-
$storeModel->setWebsiteId($groupModel->getWebsiteId());
86-
if (!$storeModel->isActive() && $storeModel->isDefault()) {
87-
throw new \Magento\Framework\Exception\LocalizedException(
88-
__('The default store cannot be disabled')
89-
);
90-
}
91-
$storeModel->save();
92-
$this->_objectManager->get(\Magento\Store\Model\StoreManager::class)->reinitStores();
93-
$this->_eventManager->dispatch($eventName, ['store' => $storeModel]);
94-
$this->messageManager->addSuccess(__('You saved the store view.'));
127+
$this->processStoreSave($postData);
95128
break;
96129
default:
97130
$redirectResult->setPath('adminhtml/*/');

0 commit comments

Comments
 (0)