/** * @param integer $id * @param integer $page * @return string */ public function actionView($id, $page = 1) { /** @var Topic $topic */ $topic = Topic::find()->with('tags')->where(['id' => $id])->one(); if (!$topic) { throw new NotFoundHttpException(); } $topic->updateCounters(['number_views' => 1]); $topic->save(); if (!Yii::$app->getUser()->getIsGuest()) { UserMention::markAsViewedByTopicID($id); } $dataProvider = Post::getDataProvider(['topic_id' => $topic->id, 'page' => $page]); $model = new CreatePostForm(); if ($model->load(Yii::$app->getRequest()->post()) && $model->validate()) { if ($model->create($topic->id)) { $this->redirect(''); } } return $this->render('view', ['dataProvider' => $dataProvider, 'model' => $model]); }
/** * @return string */ public function actionCreate() { if (Yii::$app->getRequest()->getIsAjax()) { Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; $model = new CreateForm(); if ($model->load(Yii::$app->getRequest()->post(), '')) { if ($model->validate()) { $id = Yii::$app->getRequest()->post('topic_id'); if ($model->create($id)) { $count = Post::find()->where(['topic_id' => $model->getTopic()->id])->count(); $data['post'] = \post\widgets\Post::widget(['post' => $model->getPost(), 'count' => $count]); $data['post_id'] = $model->getPost()->getPrimaryKey(); $data['page'] = $this->getPageByPost($model->getPost()); return $data; } } else { return ['errors' => $model->getFirstErrors()]; } } } throw new NotFoundHttpException(); }