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