/** * Creates a new Post model. * If creation is successful, the browser will be redirected to the 'update' page. * * @param integer $post_type post_type_id * * @throws \yii\web\ForbiddenHttpException * @throws \yii\web\NotFoundHttpException * @return mixed */ public function actionCreate($post_type) { $model = new Post(); $postType = $this->findPostType($post_type); $model->post_comment_status = Option::get('default_comment_status'); if (!Yii::$app->user->can($postType->post_type_permission)) { throw new ForbiddenHttpException(Yii::t('writesdown', 'You are not allowed to perform this action.')); } if ($model->load(Yii::$app->request->post())) { $model->post_type = $postType->id; $model->post_date = Yii::$app->formatter->asDatetime($model->post_date, 'php:Y-m-d H:i:s'); if ($model->save()) { if ($termIds = Yii::$app->request->post('termIds')) { foreach ($termIds as $termId) { $termRelationship = new TermRelationship(); $termRelationship->setAttributes(['term_id' => $termId, 'post_id' => $model->id]); if ($termRelationship->save() && ($term = $this->findTerm($termId))) { $term->updateAttributes(['term_count' => $term->term_count++]); } } } if ($meta = Yii::$app->request->post('meta')) { foreach ($meta as $meta_name => $meta_value) { $model->setMeta($meta_name, $meta_value); } } Yii::$app->getSession()->setFlash('success', Yii::t('writesdown', '{post_type} successfully saved.', ['post_type' => $postType->post_type_sn])); return $this->redirect(['update', 'id' => $model->id]); } } return $this->render('create', ['model' => $model, 'postType' => $postType]); }