示例#1
0
 /**
  * If in management state and the last revision was published, create a new revision.
  * @ignore
  */
 public function getCurrentRevision()
 {
     if ($this->currentRevision !== null) {
         return $this->currentRevision;
     }
     if (!$this->currentPage) {
         return null;
     }
     $revision = null;
     $pageId = $this->currentPage->getId();
     if (ipRequest()->getQuery('_revision') && ipAdminId()) {
         $revisionId = ipRequest()->getQuery('_revision');
         $revision = \Ip\Internal\Revision::getRevision($revisionId);
         if ($revision['pageId'] != $pageId) {
             $revision = null;
         }
     }
     if (!$revision && ipIsManagementState()) {
         $revision = \Ip\Internal\Revision::getLastRevision($pageId);
         if ($revision['isPublished']) {
             $duplicatedId = \Ip\Internal\Revision::duplicateRevision($revision['revisionId']);
             $revision = \Ip\Internal\Revision::getRevision($duplicatedId);
         }
     }
     if (!$revision) {
         $revision = \Ip\Internal\Revision::getPublishedRevision($this->currentPage->getId());
     }
     $this->currentRevision = $revision;
     return $this->currentRevision;
 }