public function createRevision() { $rev = new WikiPageRevision(); $rev->user_id = Yii::$app->user->id; $rev->revision = time(); $lastRevision = WikiPageRevision::find()->where(array('is_latest' => 1, 'wiki_page_id' => $this->id))->one(); if ($lastRevision !== null) { $rev->content = $lastRevision->content; } if (!$this->isNewRecord) { $rev->wiki_page_id = $this->id; } return $rev; }
public function actionHistory() { $id = Yii::$app->request->get('id'); $page = WikiPage::find()->contentContainer($this->contentContainer)->readable()->where(['wiki_page.id' => $id])->one(); if ($page === null) { throw new HttpException(404, 'Page not found!'); } $query = WikiPageRevision::find(); $query->orderBy('wiki_page_revision.id DESC'); $query->where(['wiki_page_id' => $page->id]); $query->joinWith('author'); $countQuery = clone $query; $pagination = new \yii\data\Pagination(['totalCount' => $countQuery->count(), 'pageSize' => "20"]); $query->offset($pagination->offset)->limit($pagination->limit); return $this->render('history', array('page' => $page, 'revisions' => $query->all(), 'pagination' => $pagination, 'homePage' => $this->getHomePage(), 'contentContainer' => $this->contentContainer)); }