66namespace Magento \Cms \Model \Page ;
77
88use 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 ;
1110use Magento \Cms \Model \ResourceModel \Page \CollectionFactory ;
1211use Magento \Framework \App \ObjectManager ;
1312use Magento \Framework \App \Request \DataPersistorInterface ;
@@ -33,11 +32,6 @@ class DataProvider extends ModifierPoolDataProvider
3332 */
3433 protected $ loadedData ;
3534
36- /**
37- * @var PageRepositoryInterface
38- */
39- private $ pageRepository ;
40-
4135 /**
4236 * @var AuthorizationInterface
4337 */
@@ -49,14 +43,9 @@ class DataProvider extends ModifierPoolDataProvider
4943 private $ request ;
5044
5145 /**
52- * @var CustomLayoutManagerInterface
46+ * @var PageService
5347 */
54- private $ customLayoutManager ;
55-
56- /**
57- * @var PageFactory
58- */
59- private $ pageFactory ;
48+ private $ pageService ;
6049
6150 /**
6251 * @var LoggerInterface
@@ -74,9 +63,7 @@ class DataProvider extends ModifierPoolDataProvider
7463 * @param PoolInterface|null $pool
7564 * @param AuthorizationInterface|null $auth
7665 * @param RequestInterface|null $request
77- * @param CustomLayoutManagerInterface|null $customLayoutManager
78- * @param PageRepositoryInterface|null $pageRepository
79- * @param PageFactory|null $pageFactory
66+ * @param PageService|null $pageService
8067 * @param LoggerInterface|null $logger
8168 * @SuppressWarnings(PHPMD.ExcessiveParameterList)
8269 */
@@ -91,9 +78,7 @@ public function __construct(
9178 ?PoolInterface $ pool = null ,
9279 ?AuthorizationInterface $ auth = null ,
9380 ?RequestInterface $ request = null ,
94- ?CustomLayoutManagerInterface $ customLayoutManager = null ,
95- ?PageRepositoryInterface $ pageRepository = null ,
96- ?PageFactory $ pageFactory = null ,
81+ ?PageService $ pageService = null ,
9782 ?LoggerInterface $ logger = null
9883 ) {
9984 parent ::__construct ($ name , $ primaryFieldName , $ requestFieldName , $ meta , $ data , $ pool );
@@ -102,10 +87,7 @@ public function __construct(
10287 $ this ->auth = $ auth ?? ObjectManager::getInstance ()->get (AuthorizationInterface::class);
10388 $ this ->meta = $ this ->prepareMeta ($ this ->meta );
10489 $ 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);
10991 $ this ->logger = $ logger ?: ObjectManager::getInstance ()->get (LoggerInterface::class);
11092 }
11193
@@ -150,22 +132,16 @@ private function getCurrentPage(): PageInterface
150132 {
151133 $ pageId = $ this ->getPageId ();
152134 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 );
160136 }
161137
162138 $ data = $ this ->dataPersistor ->get ('cms_page ' );
163139 if (empty ($ data )) {
164- return $ this ->pageFactory -> create ();
140+ return $ this ->pageService -> createPageFactory ();
165141 }
166142 $ this ->dataPersistor ->clear ('cms_page ' );
167143
168- return $ this ->pageFactory -> create ()
144+ return $ this ->pageService -> createPageFactory ()
169145 ->setData ($ data );
170146 }
171147
@@ -215,12 +191,15 @@ public function getMeta()
215191
216192 $ page = null ;
217193 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+ }
224203 }
225204 } catch (LocalizedException $ e ) {
226205 $ this ->logger ->error ($ e ->getMessage ());
0 commit comments