public function actionMarkTest()
 {
     $arrQuestion = isset($_REQUEST["arrQuestion"]) ? $_REQUEST["arrQuestion"] : array();
     $user_test_id = isset($_REQUEST["user_test_id"]) ? $_REQUEST["user_test_id"] : NULL;
     $json = array("result" => "true");
     if (!empty($arrQuestion)) {
         $checkSave = TRUE;
         foreach ($arrQuestion as $itemquestion) {
             $model = WUserAnswers::model()->find("question_id=" . $itemquestion["idquestion"] . ' AND user_test_id=' . $itemquestion["user_test_id"]);
             if (!empty($model)) {
                 $model->point_answer_text = $itemquestion["point_answer_text"];
                 $model->comment_trainer = $itemquestion["comment_question"];
                 if (!$model->save()) {
                     $checkSave = FALSE;
                 }
             }
         }
         if ($checkSave == TRUE) {
             $arrPointQuestion = array();
             // Lay Point cua cau hoi
             $db = Yii::app()->db;
             $comm = $db->createCommand()->select('t.*,t2.test_name')->from('pls_user_test t')->LeftJoin('pls_test_parent t2', 't2.id=t.test_id')->LeftJoin('pls_course t3', 't3.id=t.course_id')->where('t.id=' . $user_test_id . ' AND t3.created_by=' . Yii::app()->user->id);
             $dataUserTest = $comm->queryRow();
             $comm->reset();
             $comm = $db->createCommand()->select('t.*')->from('pls_test_user t')->where('t.id_test_parent=' . $dataUserTest["test_id"] . ' AND user_id=' . $dataUserTest["user_id"] . ' AND kind=' . $dataUserTest["test_kind"] . ' AND t.course_id=' . $dataUserTest["course_id"] . ' AND t.lecture_id=' . $dataUserTest["lecture_id"]);
             $dataTestUser = $comm->queryRow();
             if (!empty($dataTestUser)) {
                 if (!empty($dataTestUser["dataquestion"])) {
                     $dataquestion = json_decode($dataTestUser["dataquestion"], true);
                     if (!empty($dataquestion)) {
                         foreach ($dataquestion as $itemdataquestion) {
                             $arrPointQuestion[$itemdataquestion["idquestion"]]["point"] = $itemdataquestion["point"];
                             $arrPointQuestion[$itemdataquestion["idquestion"]]["answertrue"] = WQuestionAnswerLib::getAnswerTrueQuestion($itemdataquestion["idquestion"]);
                         }
                     }
                 }
             }
             // Select Nhung cau tra loi cua hoc vien
             $comm->reset();
             $comm = $db->createCommand()->select('t.*')->from('pls_user_answers t')->where('t.user_test_id=' . $user_test_id);
             $dataUserAnswer = $comm->queryAll();
             if (!empty($dataUserAnswer)) {
                 foreach ($dataUserAnswer as $itemdataUserAnswer) {
                     $arrPointQuestion[$itemdataUserAnswer["question_id"]]["question_type"] = $itemdataUserAnswer["question_type"];
                     $arrPointQuestion[$itemdataUserAnswer["question_id"]]["question_id"] = $itemdataUserAnswer["question_id"];
                     $arrPointQuestion[$itemdataUserAnswer["question_id"]]["doing"] = $itemdataUserAnswer["doing"];
                     if ($itemdataUserAnswer["question_type"] == 1 or $itemdataUserAnswer["question_type"] == 4) {
                         $arrPointQuestion[$itemdataUserAnswer["question_id"]]["useranswer"] = $itemdataUserAnswer["user_answer_id"];
                     } elseif ($itemdataUserAnswer["question_type"] == 2) {
                         $arrPointQuestion[$itemdataUserAnswer["question_id"]]["useranswer"] = $itemdataUserAnswer["user_answer_text"];
                     }
                     $arrPointQuestion[$itemdataUserAnswer["question_id"]]["point_answer_text"] = $itemdataUserAnswer["point_answer_text"];
                     $arrPointQuestion[$itemdataUserAnswer["question_id"]]["comment_trainer"] = $itemdataUserAnswer["comment_trainer"];
                 }
             }
             // Kiem tra nhung cau tra loi dung
             $dataNew = array();
             $total_point = 0;
             if (!empty($arrPointQuestion)) {
                 foreach ($arrPointQuestion as $key => $itemPointQuestion) {
                     $dataNew[$key] = $itemPointQuestion;
                     if (!empty($itemPointQuestion["answertrue"])) {
                         if ($itemPointQuestion["question_type"] == 4 or $itemPointQuestion["question_type"] == 1) {
                             // Truong hop nhieu dap an
                             $dataAnswer = explode(',', $itemPointQuestion["useranswer"]);
                             $dataAnswerNew = array();
                             foreach ($dataAnswer as $item) {
                                 if (!empty($item)) {
                                     $dataAnswerNew[] = $item;
                                 }
                             }
                             $check = TRUE;
                             if (count($dataAnswerNew) == count($itemPointQuestion["answertrue"])) {
                                 foreach ($dataAnswerNew as $itemdataAnswerNew) {
                                     if (!in_array($itemdataAnswerNew, $itemPointQuestion["answertrue"])) {
                                         $check = FALSE;
                                     }
                                 }
                             } else {
                                 $check = FALSE;
                             }
                             if ($check == TRUE) {
                                 $dataNew[$key]["check"] = "OK";
                                 $total_point += $itemPointQuestion["point"];
                             } else {
                                 $dataNew[$key]["check"] = "NOK";
                             }
                         }
                     }
                     if ($itemPointQuestion["question_type"] == 2) {
                         if (isset($itemPointQuestion["point_answer_text"])) {
                             $total_point += $itemPointQuestion["point_answer_text"];
                         }
                     }
                 }
             }
             // Luu ket qua vao database
             $model = WTestUser::model()->find('user_id=' . $dataUserTest["user_id"] . ' AND id_test_parent=' . $dataUserTest["test_id"] . ' AND kind=' . $dataUserTest["test_kind"] . ' AND course_id=' . $dataUserTest["course_id"] . ' AND lecture_id=' . $dataUserTest["lecture_id"]);
             $model->datafinish = json_encode($dataNew);
             $model->save();
             $modelUserTest = WUserTest::model()->find('id=' . $user_test_id);
             $modelUserTest->pass_score_point = $total_point;
             $modelUserTest->success = 2;
             if ($modelUserTest->save()) {
                 //$testDetails = WTest::model()->find("id=".$test_id);
                 $username = WUser::getFullNameUser($dataUserTest["user_id"]);
                 $trainer = WUser::getFullNameUser(Yii::app()->user->id);
                 $title = "Giáo viên " . $trainer . " đã chấm bài test: " . $dataUserTest["test_name"] . " của bạn";
                 if (!empty($dataUserTest["success"]) and $dataUserTest["success"] == 2) {
                     $title = "Giáo viên " . $trainer . " đã chấm bài lại test: " . $dataUserTest["test_name"] . " của bạn";
                 }
                 $content = "Dear <strong>" . $username . "</strong>";
                 //$content .="<br/>Bài làm Test :".$testDetails->test_name." của bạn đã được Giáo viên: <strong>".$trainer.'</strong> chấm xong';
                 $content .= "<br/>Giáo viên <strong>" . $trainer . '</strong> đã chấm bài: <strong>"' . $dataUserTest["test_name"] . '"</strong> của bạn';
                 $url = Yii::app()->createUrl("wCourseLecture/Viewresult", array("user_test_id" => $dataUserTest["id"]));
                 $content .= "<br/><a href='" . $url . "'>Click Để xem kết quả bài test</a>";
                 WMessage::SendMessage($title, $content, "notifi", Yii::app()->user->id, $dataUserTest["user_id"]);
                 $json = array("result" => "true");
             }
         } else {
             $json = array("result" => "false", "message" => "");
         }
     }
     echo json_encode($json);
 }
                            $dataNew[$itemquestion["idquestion"]]["check"] = "NOK";
                        }
                    }
                }
            }
            if ($item["success"] == 2) {
                $dataUpdateUserTest = WUserTest::model()->find("id=" . $item["user_test_id"]);
                $dataUpdateUserTest->pass_score_point = $totalpointuser;
                $dataUpdateUserTest->save();
                $datafinish = $dataNew;
                $modelTestUser = WTestUser::model()->find("user_id=" . $data_user_id . " AND course_id=" . $data_course_id . ' AND lecture_id=' . $data_lecture_id . ' AND kind=' . $data_test_kind . ' AND id_test_parent=' . $data_test_id);
                $modelTestUser->datafinish = json_encode($datafinish);
                $modelTestUser->save();
            }
        }
        $datafinish = WTestUser::GetDataAnswer($datafinish);
        if (isset($datafinish["total_check"])) {
            ?>
<!--                            <p style="margin-bottom: 2px;">Trả lời đúng <strong style="color: #D30C0C">--><?php 
            //echo $datafinish["total_true"]
            ?>
<!--/--><?php 
            //echo $datafinish["total_check"];
            ?>
<!--</strong> câu hỏi trắc nghiệm</p>-->
                            <p style="margin-bottom: 2px;"> Có <strong style="color: #D30C0C"><?php 
            echo $datafinish["total_check"];
            ?>
</strong> câu hỏi trắc nghiệm: </p>
                            <p style="margin-bottom: 2px;"><strong style="color: #D30C0C"><?php 
            echo $datafinish["total_true"];
 public function actionFinishTest()
 {
     $user_test_id = isset($_REQUEST["user_test_id"]) ? $_REQUEST["user_test_id"] : NULL;
     $db = Yii::app()->db;
     $comm = $db->createCommand()->select('t.*')->from('pls_user_test t')->where('t.id=' . $user_test_id);
     $dataUserTest = $comm->queryRow();
     //data test
     $arrPointQuestion = array();
     // Lay Point cua cau hoi
     if (!empty($dataUserTest)) {
         $comm->reset();
         $comm = $db->createCommand()->select('t.*')->from('pls_test_user t')->where('t.id_test_parent=' . $dataUserTest["test_id"] . ' AND t.user_id=' . $dataUserTest["user_id"] . ' AND kind=' . $dataUserTest["test_kind"] . ' AND t.course_id=' . $dataUserTest["course_id"] . ' AND t.lecture_id=' . $dataUserTest["lecture_id"]);
         $dataTestUser = $comm->queryRow();
         if (!empty($dataTestUser)) {
             if (isset($dataTestUser["dataquestion"]) and !empty($dataTestUser["dataquestion"])) {
                 $dataquestion = json_decode($dataTestUser["dataquestion"], true);
                 if (!empty($dataquestion)) {
                     foreach ($dataquestion as $itemdataquestion) {
                         $arrPointQuestion[$itemdataquestion["idquestion"]]["point"] = $itemdataquestion["point"];
                         $arrPointQuestion[$itemdataquestion["idquestion"]]["answertrue"] = WQuestionAnswerLib::getAnswerTrueQuestion($itemdataquestion["idquestion"]);
                     }
                 }
             }
         }
         // Select Nhung cau tra loi cua hoc vien
         $comm->reset();
         $comm = $db->createCommand()->select('t.*')->from('pls_user_answers t')->where('t.user_test_id=' . $user_test_id);
         $dataUserAnswer = $comm->queryAll();
         if (!empty($dataUserAnswer)) {
             foreach ($dataUserAnswer as $itemdataUserAnswer) {
                 $arrPointQuestion[$itemdataUserAnswer["question_id"]]["question_type"] = $itemdataUserAnswer["question_type"];
                 $arrPointQuestion[$itemdataUserAnswer["question_id"]]["question_id"] = $itemdataUserAnswer["question_id"];
                 $arrPointQuestion[$itemdataUserAnswer["question_id"]]["doing"] = $itemdataUserAnswer["doing"];
                 if (isset($itemdataUserAnswer["question_type"]) and $itemdataUserAnswer["question_type"] == 1 or $itemdataUserAnswer["question_type"] == 4) {
                     $arrPointQuestion[$itemdataUserAnswer["question_id"]]["useranswer"] = $itemdataUserAnswer["user_answer_id"];
                 } elseif (isset($itemdataUserAnswer["question_type"]) and $itemdataUserAnswer["question_type"] == 2) {
                     $arrPointQuestion[$itemdataUserAnswer["question_id"]]["useranswer"] = $itemdataUserAnswer["user_answer_text"];
                 }
             }
         }
         // Kiem tra nhung cau tra loi dung
         $dataNew = array();
         $totalpoint = 0;
         //Kiem tra xem co question Text hay khong
         $check_question_type = TRUE;
         if (!empty($arrPointQuestion)) {
             foreach ($arrPointQuestion as $key => $itemPointQuestion) {
                 $dataNew[$key] = $itemPointQuestion;
                 if (isset($itemPointQuestion["question_type"]) and $itemPointQuestion["question_type"] == 2) {
                     $check_question_type = FALSE;
                 }
                 if (isset($itemPointQuestion["answertrue"]) and !empty($itemPointQuestion["answertrue"])) {
                     if (isset($itemPointQuestion["question_type"]) and $itemPointQuestion["question_type"] == 4 or $itemPointQuestion["question_type"] == 1) {
                         // Truong hop nhieu dap an
                         $dataAnswer = explode(',', $itemPointQuestion["useranswer"]);
                         $dataAnswerNew = array();
                         foreach ($dataAnswer as $item) {
                             if (!empty($item)) {
                                 $dataAnswerNew[] = $item;
                             }
                         }
                         $check = TRUE;
                         if (count($dataAnswerNew) == count($itemPointQuestion["answertrue"])) {
                             foreach ($dataAnswerNew as $itemdataAnswerNew) {
                                 if (!in_array($itemdataAnswerNew, $itemPointQuestion["answertrue"])) {
                                     $check = FALSE;
                                 }
                             }
                         } else {
                             $check = FALSE;
                         }
                         if ($check == TRUE) {
                             $dataNew[$key]["check"] = "OK";
                             $totalpoint += $itemPointQuestion["point"];
                         } else {
                             $dataNew[$key]["check"] = "NOK";
                         }
                     }
                 }
             }
         }
         // Luu ket qua vao database
         $model = WTestUser::model()->find('id_test_parent=' . $dataUserTest["test_id"] . ' AND user_id=' . $dataUserTest["user_id"] . ' AND kind=' . $dataUserTest["test_kind"] . ' AND course_id=' . $dataUserTest["course_id"] . ' AND lecture_id=' . $dataUserTest["lecture_id"]);
         $model->datafinish = json_encode($dataNew);
         $model->save();
         $modelUserTest = WUserTest::model()->find("id=" . $user_test_id);
         $modelUserTest->status = 1;
         if ($check_question_type == TRUE) {
             $modelUserTest->success = 2;
         } else {
             $modelUserTest->success = 1;
         }
         $modelUserTest->pass_score_point = $totalpoint;
         $modelUserTest->finish_date = date('Y-m-d H:i:s');
         if ($modelUserTest->save()) {
             echo json_encode(array("result" => "true", "mess" => "Hoàn thành bài kiểm tra"));
         } else {
             echo json_encode(array("result" => "false", "mess" => "Lỗi !. Chụp lại màn hình và gửi tới Admin để được hỗ trợ tốt nhất."));
         }
     } else {
         echo json_encode(array("result" => "false", "mess" => "Lỗi !. Chụp lại màn hình và gửi tới Admin để được hỗ trợ tốt nhất."));
     }
 }
                 }
                 if ($check == TRUE) {
                     $dataNew[$itemquestion["idquestion"]]["check"] = "OK";
                     $totalpointuser += $dataNew[$itemquestion["idquestion"]]["point"];
                 } else {
                     $dataNew[$itemquestion["idquestion"]]["check"] = "NOK";
                 }
             }
         }
     }
     if ($data["success"] == 2) {
         $dataUpdateUserTest = WUserTest::model()->find("id=" . $data["user_test_id"]);
         $dataUpdateUserTest->pass_score_point = $totalpointuser;
         $dataUpdateUserTest->save();
         $datafinish = $dataNew;
         $modelTestUser = WTestUser::model()->find("user_id=" . $data["user_id"] . " AND course_id=" . $data["course_id"] . ' AND lecture_id=' . $data["lecture_id"] . ' AND kind=' . $data["test_kind"] . ' AND id_test_parent=' . $data["test_id"]);
         $modelTestUser->datafinish = json_encode($datafinish);
         $modelTestUser->save();
     }
 }
 ?>
             <h3>
                 <?php 
 if ($data["test_kind"] == 1) {
     ?>
                 <span class="icon_test_pre">Pre-test</span>
                 <?php 
 } elseif ($data["test_kind"] == 0) {
     ?>
                 <span class="icon_test">Post-test</span>
                 <?php 
Example #5
0
 public static function totalQuestionLib($test_id)
 {
     $data = WTestUser::model()->find("id_test_parent=" . $test_id . ' AND user_id' . Yii::app()->user->id);
     $totalQuestion = 0;
     if (!empty($data) and !empty($data->dataquestion)) {
         $listQuestionId = json_decode($data->dataquestion, true);
         $totalQuestion = count($listQuestionId);
     }
     return $totalQuestion;
 }