예제 #1
0
 /**
  * Creates a new CodeBankCampaign model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate($step = null)
 {
     $model = new CodeBankCampaign();
     $model->loadDefaultValues();
     $model->scenario = 'step1';
     $codes = Yii::$app->user->identity->availableCodes;
     $codes = ArrayHelper::merge($codes, Yii::$app->user->identity->availableGroupCodes);
     $request = Yii::$app->request;
     foreach ($codes as $key => $value) {
         if (Yii::$app->user->can('createCampaign', ['code' => $value])) {
             $allCodes[$value] = $value;
         }
     }
     if ($model->load($request->post()) && isset($step) && $model->validate()) {
         switch ($model->modelClass) {
             case 'Video':
                 return $this->run('/video/load-video', ['codeBankCampaign' => $model]);
                 break;
             case 'Review':
                 return $this->run('/review/load-review', ['codeBankCampaign' => $model]);
                 break;
             case 'Contest':
                 return $this->run('/question/load-review', ['codeBankCampaign' => $model]);
                 break;
             default:
         }
         return $this->redirect(['view', 'id' => $model->id]);
     } else {
         return $this->render('create', ['model' => $model, 'codes' => $allCodes]);
     }
 }
예제 #2
0
 public function actionConfirmed()
 {
     $codeBankCampaign = new CodeBankCampaign();
     $codeBankCampaign->loadDefaultValues();
     $review = new Review();
     $review->loadDefaultValues();
     $request = Yii::$app->request;
     if ($request->isPost && $codeBankCampaign->load($request->post()) && $review->load($request->post())) {
         $isValid = $codeBankCampaign->validate();
         $isValid = $review->validate() && $isValid;
         if ($isValid) {
             if ($review->save()) {
                 $codeBankCampaign->objectId = $review->id;
                 $codeBankCampaign->save();
                 return $this->redirect(['/campaign/index']);
             }
         }
     }
     return $this->render('step', ['model' => $review, 'codeBankCampaign' => $codeBankCampaign]);
 }