Skip to content

Commit 6590825

Browse files
authored
Merge pull request #112 from mooore-digital/feature/CON-269_wp-page-layouts
CON-269 - Add page layout handle based on wordpress API
2 parents 376f040 + 1902f36 commit 6590825

1 file changed

Lines changed: 27 additions & 2 deletions

File tree

Observer/LayoutLoadBefore.php

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use Magento\Framework\Exception\NoSuchEntityException;
1212
use Magento\Framework\View\Layout;
1313
use Magento\Framework\Event\Observer;
14+
use Mooore\WordpressIntegrationCms\Model\RemotePageRepository;
1415

1516
class LayoutLoadBefore implements ObserverInterface
1617
{
@@ -37,11 +38,18 @@ class LayoutLoadBefore implements ObserverInterface
3738
*/
3839
private $page;
3940

40-
public function __construct(Http $request, PageRepository $pageRepository, Page $page)
41-
{
41+
private RemotePageRepository $remotePageRepository;
42+
43+
public function __construct(
44+
Http $request,
45+
PageRepository $pageRepository,
46+
RemotePageRepository $remotePageRepository,
47+
Page $page
48+
) {
4249
$this->request = $request;
4350
$this->pageRepository = $pageRepository;
4451
$this->page = $page;
52+
$this->remotePageRepository = $remotePageRepository;
4553
}
4654

4755
/**
@@ -76,5 +84,22 @@ public function execute(Observer $observer)
7684
$layout = $observer->getData('layout');
7785

7886
$layout->getUpdate()->addHandle('cms_wp_content');
87+
$layout->getUpdate()->addHandle('wpci_page_view');
88+
89+
$this->addWordpressLayoutHandles($page->getData('wordpress_page_id'), $layout);
90+
}
91+
92+
public function addWordpressLayoutHandles($wordpressPageId, $layout) {
93+
[$siteId, $pageId] = explode('_', $wordpressPageId);
94+
$siteId = (int)$siteId;
95+
$pageId = (int)$pageId;
96+
97+
$wpPage = $this->remotePageRepository->get($siteId, $pageId);
98+
99+
if (!array_key_exists('page_layout', $wpPage) || is_null($wpPage['page_layout'])) {
100+
return;
101+
}
102+
103+
$layout->getUpdate()->addHandle(sprintf('wpci_page_view_%s', $wpPage['page_layout']));
79104
}
80105
}

0 commit comments

Comments
 (0)