public function actionEdit() { $id = (int) Yii::$app->request->get('id'); $page = WikiPage::find()->contentContainer($this->contentContainer)->readable()->where(['wiki_page.id' => $id])->one(); if ($page === null) { $page = new WikiPage(); $page->content->setContainer($this->contentContainer); $page->content->visibility = Content::VISIBILITY_PRIVATE; $page->title = Yii::$app->request->get('title'); } if ($page->admin_only && !$page->canAdminister()) { throw new HttpException(403, 'Page not editable!'); } $revision = $page->createRevision(); if ($page->load(Yii::$app->request->post()) && $revision->load(Yii::$app->request->post())) { $page->content->container = $this->contentContainer; if ($page->validate()) { $page->save(); File::attachPrecreated($page, Yii::$app->request->post('fileUploaderHiddenGuidField')); $revision->wiki_page_id = $page->id; if ($revision->validate()) { $revision->save(); return $this->redirect($this->contentContainer->createUrl('view', array('title' => $page->title))); } } } return $this->render('edit', ['page' => $page, 'revision' => $revision, 'homePage' => $this->getHomePage(), 'contentContainer' => $this->contentContainer]); }