/** * getRevisionLink * * @param Page $page * @param RevisionEntity $revision * * @return string */ public function getRevisionLink(Page $page, RevisionEntity $revision) { $view = $this->getView(); $revisionId = $revision->getRevisionId(); $publishedId = $page->getPublishedRevision(); $stagedId = $page->getStagedRevision(); if (!empty($publishedId) && $publishedId->getRevisionId() == $revision->getRevisionId() || !empty($stagedId) && $stagedId->getRevisionId() == $revision->getRevisionId()) { $revisionId = null; } $html = '<a href="' . $view->urlToPage($page->getName(), $page->getPageType(), $revisionId) . '">'; $html .= $this->getRevisionType($page, $revision) . ' - ' . $revision->getAuthor(); $html .= '</a>'; return $html; }
/** * 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; }