Esempio n. 1
0
 /**
  * getCmsResponse
  *
  * @param Site   $site
  * @param        $pageName
  * @param string $pageType
  * @param null   $revisionId
  *
  * @return \Rcm\Http\Response|ViewModel
  */
 public function getCmsResponse(Site $site, $pageName, $pageType = 'n', $revisionId = null)
 {
     /**
      * @todo This should be handled better
      * This is for client, so it can tell if this is an error page
      */
     $requestedPageData = ['name' => strtolower($pageName), 'type' => strtolower($pageType), 'revision' => $revisionId];
     /* Get the Page for display */
     $page = $this->pageRepo->getPageByName($site, $pageName, $pageType);
     $viewModel = new ViewModel();
     if (!$page) {
         $page = $this->renderNotFoundPage($site);
     }
     $allowed = $this->rcmIsPageAllowed($page);
     if (!$allowed) {
         return $this->getUnauthorizedResponse();
     }
     $this->prepPageRevisionForDisplay($page, $revisionId);
     // if we have no revision, page is not found
     if (!$page->getCurrentRevision()) {
         $page = $this->renderNotFoundPage($site);
         $this->prepPageRevisionForDisplay($page);
     }
     $this->prepLayoutView($site, $page, $requestedPageData, $page->getSiteLayoutOverride());
     $viewModel->setVariable('page', $page);
     $viewModel->setTemplate('pages/' . $this->layoutManager->getSitePageTemplate($site, $page->getPageLayout()));
     return $viewModel;
 }