/** * prepPageRevisionForDisplay * * @param Page $page * @param null $pageRevisionId * * @return void|Response */ public function prepPageRevisionForDisplay(Page $page, $pageRevisionId = null) { // First Check for a page Revision if (!empty($pageRevisionId)) { $userCanSeeRevisions = $this->shouldShowRevisions($page->getSite()->getSiteId(), $page->getName(), $page->getPageType()); if ($userCanSeeRevisions) { $revision = $page->getRevisionById($pageRevisionId); if (!empty($revision) || $revision instanceof Revision) { $page->setCurrentRevision($revision); } return; } else { return $this->redirectToPage($page->getName(), $page->getPageType()); } } // Check for staging if ($this->rcmIsSiteAdmin($page->getSite())) { $revision = $page->getStagedRevision(); if (!empty($revision) || $revision instanceof Revision) { $page->setCurrentRevision($revision); return; } } // Finally look for published revision $revision = $page->getPublishedRevision(); if (!empty($revision) || $revision instanceof Revision) { $page->setCurrentRevision($revision); } return; }
/** * Set Site Layout * * @param MvcEvent $event Zend MVC Event object * * @return null */ public function setSiteLayout(MvcEvent $event) { /** @var \Zend\View\Model\ViewModel $viewModel */ $viewModel = $event->getViewModel(); /* Add on for non CMS pages */ $fakePage = new Page(); $fakeRevision = new Revision(); $fakePage->setCurrentRevision($fakeRevision); $currentSite = $this->getCurrentSite(); $viewModel->setVariable('page', $fakePage); $viewModel->setVariable('site', $currentSite); $template = $this->getSiteLayoutTemplate(); $viewModel->setTemplate('layout/' . $template); return null; }