Example #1
0
 /**
  * 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;
 }
Example #2
0
 /**
  * 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;
 }