Пример #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 actionStep()
 {
     $model = new Question();
     $answers = [];
     $count = count(Yii::$app->request->post('Answer', []));
     $codeBankCampaign = new CodeBankCampaign();
     $codeBankCampaign->load(Yii::$app->request->post());
     if (Yii::$app->request->isPost && $model->load(Yii::$app->request->post()) && $model->validate()) {
         if ($count > 0) {
             if ($model->qType === '1') {
                 $temp = Yii::$app->request->post('Answer', []);
                 $count = count($temp['answer']);
                 for ($i = 0; $i < $count; $i++) {
                     $answer = new Answer();
                     $answer->scenario = 'objective';
                     $answer->answer = $temp['answer'][$i];
                     $answer->correctObjective = $temp['correctObjective'][$i];
                     $answer->validate();
                     $answers[] = $answer;
                 }
             }
         }
     }
     return $this->render('step', ['model' => $model, 'codeBankCampaign' => $codeBankCampaign, 'answers' => $answers]);
 }
Пример #3
0
 public function actionConfirmed()
 {
     $codeBankCampaign = new CodeBankCampaign();
     $codeBankCampaign->loadDefaultValues();
     $video = new Video();
     $video->loadDefaultValues();
     $request = Yii::$app->request;
     if ($request->isPost) {
         $lib = new Vimeo(Yii::$app->params['vimeoClientId'], Yii::$app->params['vimeoSecret'], Yii::$app->params['vimeoAccessToken']);
         if ($codeBankCampaign->load($request->post()) && $video->load($request->post())) {
             $response = $lib->request('/me/videos/' . $video->videoId, [], 'GET');
             $video->duration = $response['body']['duration'];
             $video->embed = $response['body']['embed']['html'];
             $video->poster = $response['body']['pictures']['sizes'][3]['link'];
             $files = $response['body']['files'];
             foreach ($files as $key => $value) {
                 switch ($value['quality']) {
                     case 'mobile':
                         $video->mobileLink = $value['link'];
                         break;
                     case 'sd':
                         $video->sdLink = $value['link'];
                         break;
                     case 'hls':
                         $video->hlsLink = $value['link'];
                         break;
                 }
             }
             if (isset($codeBankCampaign->codeBank_code)) {
                 $video->confirmed = 1;
             }
             $video->save();
             $codeBankCampaign->objectId = $video->id;
             $codeBankCampaign->save();
             //                $view = $this->getView();
             //                $view->title = 'Step 3: Editing Video Information for Hyrizy Code ' . Html::tag('label',$codeBankCampaign->codeBank_code,['class'=>'label label-primary']);
             //                return $this->render('update',['model'=>$video]);
             return $this->redirect(['/campaign/view', 'id' => $codeBankCampaign->id]);
         }
     }
 }
Пример #4
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]);
 }