6
6
*/
7
7
namespace Magento \Backend \Controller \Adminhtml \System \Store ;
8
8
9
-
9
+ /**
10
+ * Class Save
11
+ *
12
+ * Save controller for system entities such as: Store, StoreGroup, Website
13
+ */
10
14
class Save extends \Magento \Backend \Controller \Adminhtml \System \Store
11
15
{
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
+
12
105
/**
13
106
* @return \Magento\Backend\Model\View\Result\Redirect
14
107
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
@@ -22,76 +115,16 @@ public function execute()
22
115
$ redirectResult ->setPath ('adminhtml/*/ ' );
23
116
return $ redirectResult ;
24
117
}
25
-
26
118
try {
27
119
switch ($ postData ['store_type ' ]) {
28
120
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 );
44
122
break ;
45
-
46
123
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 );
65
125
break ;
66
-
67
126
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 );
95
128
break ;
96
129
default :
97
130
$ redirectResult ->setPath ('adminhtml/*/ ' );
0 commit comments