/** * 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; }