@@ -64,7 +64,6 @@ public function execute()
64
64
/** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
65
65
$ resultRedirect = $ this ->resultRedirectFactory ->create ();
66
66
$ data = $ this ->getRequest ()->getPostValue ();
67
- $ redirect = $ data ['back ' ];
68
67
if ($ data ) {
69
68
if (isset ($ data ['is_active ' ]) && $ data ['is_active ' ] === 'true ' ) {
70
69
$ data ['is_active ' ] = Block::STATUS_ENABLED ;
@@ -92,19 +91,7 @@ public function execute()
92
91
$ this ->blockRepository ->save ($ model );
93
92
$ this ->messageManager ->addSuccessMessage (__ ('You saved the block. ' ));
94
93
$ this ->dataPersistor ->clear ('cms_block ' );
95
- if ($ redirect ==='continue ' ) {
96
- return $ resultRedirect ->setPath ('*/*/edit ' , ['block_id ' => $ model ->getId ()]);
97
- } else if ($ redirect === 'close ' ) {
98
- return $ resultRedirect ->setPath ('*/*/ ' );
99
- } else if ($ redirect === 'duplicate ' ) {
100
- $ duplicateModel = $ this ->blockFactory ->create (['data ' => $ data ]);
101
- $ duplicateModel ->setId (null );
102
- $ duplicateModel ->setIdentifier ($ data ['identifier ' ] . '- ' . uniqid ());
103
- $ duplicateModel ->setIsActive (Block::STATUS_DISABLED );
104
- $ this ->blockRepository ->save ($ duplicateModel );
105
- $ id = $ duplicateModel ->getId ();
106
- $ this ->messageManager ->addSuccessMessage (__ ('You duplicated the block. ' ));
107
- }
94
+ return $ this ->processBlockReturn ($ model , $ data , $ resultRedirect );
108
95
} catch (LocalizedException $ e ) {
109
96
$ this ->messageManager ->addErrorMessage ($ e ->getMessage ());
110
97
} catch (\Exception $ e ) {
@@ -116,4 +103,34 @@ public function execute()
116
103
}
117
104
return $ resultRedirect ->setPath ('*/*/ ' );
118
105
}
106
+
107
+ /**
108
+ * Process and set the block return
109
+ *
110
+ * @param \Magento\Cms\Model\Block $model
111
+ * @param array $data
112
+ * @param \Magento\Framework\Controller\ResultInterface $resultRedirect
113
+ * @return \Magento\Framework\Controller\ResultInterface
114
+ */
115
+ private function processBlockReturn ($ model , $ data , $ resultRedirect )
116
+ {
117
+ $ redirect = $ data ['back ' ] ?? 'close ' ;
118
+
119
+ if ($ redirect ==='continue ' ) {
120
+ $ resultRedirect ->setPath ('*/*/edit ' , ['block_id ' => $ model ->getId ()]);
121
+ } else if ($ redirect === 'close ' ) {
122
+ $ resultRedirect ->setPath ('*/*/ ' );
123
+ } else if ($ redirect === 'duplicate ' ) {
124
+ $ duplicateModel = $ this ->blockFactory ->create (['data ' => $ data ]);
125
+ $ duplicateModel ->setId (null );
126
+ $ duplicateModel ->setIdentifier ($ data ['identifier ' ] . '- ' . uniqid ());
127
+ $ duplicateModel ->setIsActive (Block::STATUS_DISABLED );
128
+ $ this ->blockRepository ->save ($ duplicateModel );
129
+ $ id = $ duplicateModel ->getId ();
130
+ $ this ->messageManager ->addSuccessMessage (__ ('You duplicated the block. ' ));
131
+ $ this ->dataPersistor ->set ('cms_block ' , $ data );
132
+ $ resultRedirect ->setPath ('*/*/edit ' , ['block_id ' => $ id ]);
133
+ }
134
+ return $ resultRedirect ;
135
+ }
119
136
}
0 commit comments