6
6
namespace Magento \Cms \Model \Page ;
7
7
8
8
use Magento \Cms \Api \Data \PageInterface ;
9
- use Magento \Cms \Api \PageRepositoryInterface ;
10
- use Magento \Cms \Model \PageFactory ;
9
+ use Magento \Cms \Model \Page \Service \PageService ;
11
10
use Magento \Cms \Model \ResourceModel \Page \CollectionFactory ;
12
11
use Magento \Framework \App \ObjectManager ;
13
12
use Magento \Framework \App \Request \DataPersistorInterface ;
@@ -33,11 +32,6 @@ class DataProvider extends ModifierPoolDataProvider
33
32
*/
34
33
protected $ loadedData ;
35
34
36
- /**
37
- * @var PageRepositoryInterface
38
- */
39
- private $ pageRepository ;
40
-
41
35
/**
42
36
* @var AuthorizationInterface
43
37
*/
@@ -49,14 +43,9 @@ class DataProvider extends ModifierPoolDataProvider
49
43
private $ request ;
50
44
51
45
/**
52
- * @var CustomLayoutManagerInterface
46
+ * @var PageService
53
47
*/
54
- private $ customLayoutManager ;
55
-
56
- /**
57
- * @var PageFactory
58
- */
59
- private $ pageFactory ;
48
+ private $ pageService ;
60
49
61
50
/**
62
51
* @var LoggerInterface
@@ -74,9 +63,7 @@ class DataProvider extends ModifierPoolDataProvider
74
63
* @param PoolInterface|null $pool
75
64
* @param AuthorizationInterface|null $auth
76
65
* @param RequestInterface|null $request
77
- * @param CustomLayoutManagerInterface|null $customLayoutManager
78
- * @param PageRepositoryInterface|null $pageRepository
79
- * @param PageFactory|null $pageFactory
66
+ * @param PageService|null $pageService
80
67
* @param LoggerInterface|null $logger
81
68
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
82
69
*/
@@ -91,9 +78,7 @@ public function __construct(
91
78
?PoolInterface $ pool = null ,
92
79
?AuthorizationInterface $ auth = null ,
93
80
?RequestInterface $ request = null ,
94
- ?CustomLayoutManagerInterface $ customLayoutManager = null ,
95
- ?PageRepositoryInterface $ pageRepository = null ,
96
- ?PageFactory $ pageFactory = null ,
81
+ ?PageService $ pageService = null ,
97
82
?LoggerInterface $ logger = null
98
83
) {
99
84
parent ::__construct ($ name , $ primaryFieldName , $ requestFieldName , $ meta , $ data , $ pool );
@@ -102,10 +87,7 @@ public function __construct(
102
87
$ this ->auth = $ auth ?? ObjectManager::getInstance ()->get (AuthorizationInterface::class);
103
88
$ this ->meta = $ this ->prepareMeta ($ this ->meta );
104
89
$ this ->request = $ request ?? ObjectManager::getInstance ()->get (RequestInterface::class);
105
- $ this ->customLayoutManager = $ customLayoutManager
106
- ?? ObjectManager::getInstance ()->get (CustomLayoutManagerInterface::class);
107
- $ this ->pageRepository = $ pageRepository ?? ObjectManager::getInstance ()->get (PageRepositoryInterface::class);
108
- $ this ->pageFactory = $ pageFactory ?: ObjectManager::getInstance ()->get (PageFactory::class);
90
+ $ this ->pageService = $ pageService ?: ObjectManager::getInstance ()->get (PageService::class);
109
91
$ this ->logger = $ logger ?: ObjectManager::getInstance ()->get (LoggerInterface::class);
110
92
}
111
93
@@ -150,22 +132,16 @@ private function getCurrentPage(): PageInterface
150
132
{
151
133
$ pageId = $ this ->getPageId ();
152
134
if ($ pageId ) {
153
- try {
154
- $ page = $ this ->pageRepository ->getById ($ pageId );
155
- } catch (LocalizedException $ exception ) {
156
- $ page = $ this ->pageFactory ->create ();
157
- }
158
-
159
- return $ page ;
135
+ return $ this ->pageService ->getPageById ($ pageId );
160
136
}
161
137
162
138
$ data = $ this ->dataPersistor ->get ('cms_page ' );
163
139
if (empty ($ data )) {
164
- return $ this ->pageFactory -> create ();
140
+ return $ this ->pageService -> createPageFactory ();
165
141
}
166
142
$ this ->dataPersistor ->clear ('cms_page ' );
167
143
168
- return $ this ->pageFactory -> create ()
144
+ return $ this ->pageService -> createPageFactory ()
169
145
->setData ($ data );
170
146
}
171
147
@@ -215,12 +191,15 @@ public function getMeta()
215
191
216
192
$ page = null ;
217
193
try {
218
- $ page = $ this ->pageRepository ->getById ($ this ->getPageId ());
219
- if ($ page ->getCustomLayoutUpdateXml () || $ page ->getLayoutUpdateXml ()) {
220
- $ options [] = ['label ' => 'Use existing layout update XML ' , 'value ' => '_existing_ ' ];
221
- }
222
- foreach ($ this ->customLayoutManager ->fetchAvailableFiles ($ page ) as $ layoutFile ) {
223
- $ options [] = ['label ' => $ layoutFile , 'value ' => $ layoutFile ];
194
+ $ pageId = $ this ->getPageId ();
195
+ if ($ pageId ) {
196
+ $ page = $ this ->pageService ->getPageById ($ pageId );
197
+ if ($ page ->getCustomLayoutUpdateXml () || $ page ->getLayoutUpdateXml ()) {
198
+ $ options [] = ['label ' => 'Use existing layout update XML ' , 'value ' => '_existing_ ' ];
199
+ }
200
+ foreach ($ this ->pageService ->fetchAvailableCustomLayouts ($ page ) as $ layoutFile ) {
201
+ $ options [] = ['label ' => $ layoutFile , 'value ' => $ layoutFile ];
202
+ }
224
203
}
225
204
} catch (LocalizedException $ e ) {
226
205
$ this ->logger ->error ($ e ->getMessage ());
0 commit comments