示例#1
0
 public function pageNotFound()
 {
     $content = null;
     $error404Page = ipContent()->getPageByAlias('error404');
     if ($error404Page) {
         $revision = \Ip\Internal\Revision::getPublishedRevision($error404Page->getId());
         $content = \Ip\Internal\Content\Model::generateBlock('main', $revision['revisionId'], 0, 0);
     }
     return new \Ip\Response\PageNotFound($content);
 }
示例#2
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;
 }
示例#3
0
 /**
  * @param int $revisionId
  * @return bool|string
  */
 public static function isRevisionModified($revisionId = null)
 {
     if ($revisionId === null) {
         $currentRevision = ipContent()->getCurrentRevision();
         $revisionId = $currentRevision['revisionId'];
     }
     $currentRevision = \Ip\Internal\Revision::getRevision($revisionId);
     if (!$currentRevision) {
         return false;
     }
     $pageId = $currentRevision['pageId'];
     $publishedRevision = \Ip\Internal\Revision::getPublishedRevision($pageId);
     if (!$publishedRevision) {
         return true;
     }
     if ($publishedRevision['revisionId'] == $currentRevision['revisionId']) {
         return false;
     }
     $currentFingerprint = self::revisionFingerprint($currentRevision['revisionId']);
     $publishedFingerprint = self::revisionFingerprint($publishedRevision['revisionId']);
     $modified = $currentFingerprint != $publishedFingerprint;
     return $modified;
 }
示例#4
0
 /**
  * @param int $sourceId
  * @param int $targetId
  */
 private static function _copyWidgets($sourceId, $targetId)
 {
     $oldRevision = \Ip\Internal\Revision::getPublishedRevision($sourceId);
     \Ip\Internal\Revision::duplicateRevision($oldRevision['revisionId'], $targetId, 1);
 }