/** * Trainee thuc hien 1 bai test * @param: $test_id : Test * @param: $course_id: Course **/ public function actionStarttest($test_id, $course_id, $lecture_id) { self::CheckLogin(); $this->layout = '//layouts/main_trainer'; $cs = Yii::app()->getClientScript(); unset($_SESSION['dataQuestionLis']); $cs->registerCssFile(Yii::app()->theme->baseUrl . '/css/jquery-ui.css?ver=' . time()); $cs->registerCssFile(Yii::app()->theme->baseUrl . '/css/dialog.css?ver=' . time()); //$cs->registerCssFile(Yii::app()->theme->baseUrl.'/css/jquery.countdown.css?ver='.time()); $cs->registerScriptFile(Yii::app()->theme->baseUrl . '/js/jquery.simplemodal-1.4.4.js', CClientScript::POS_END); $cs->registerScriptFile(Yii::app()->theme->baseUrl . '/js/jquery-ui.js'); $cs->registerScriptFile(Yii::app()->theme->baseUrl . '/js/jquery.slimscroll.min.js'); //Check trainee co trong khoa hoc hay khong if (WCourseTrainee::CheckTraineeInCourse($course_id) == FALSE) { $this->redirect(Yii::app()->CreateUrl("/")); } $kind = isset($_REQUEST['kind']) ? $_REQUEST['kind'] : ''; $db = Yii::app()->db; $comm = $db->createCommand()->select('t.*,t2.test_cat')->from('pls_test_parent t')->leftJoin('pls_test_cat t2', 't.test_cat_id = t2.id')->where('t.id=' . $test_id); $result = $comm->queryRow(); $dataQuestion = array(); $dataQuestionLib = array(); // Luu Data Question vao 1 mang $dataTestUser = WTestUser::model()->find("id_test_parent=" . $test_id . ' AND course_id=' . $course_id . ' AND lecture_id=' . $lecture_id . ' AND user_id=' . Yii::app()->user->id); if (empty($dataTestUser)) { if (!empty($result["dataconfig"])) { $dataconfig = json_decode($result["dataconfig"], true); $dataQuestionFix = array(); $totalquestion = 0; // Ket noi database $db = Yii::app()->db; $comm = $db->createCommand(); if (isset($dataconfig["datafix"]) and !empty($dataconfig["datafix"])) { $totalquestion += count($dataconfig["datafix"]); if (!empty($result["if_random"])) { $dataNew = array(); $i = 0; $count = count($dataconfig["datafix"]); while ($i < $count) { $indexrandom = array_rand($dataconfig["datafix"]); $dataNew[$i] = $dataconfig["datafix"][$indexrandom]; unset($dataconfig["datafix"][$indexrandom]); $i++; } $dataconfig["datafix"] = $dataNew; } foreach ($dataconfig["datafix"] as $key => $ItemdataquestionFix) { $dataQuestionFix[] = $ItemdataquestionFix["idquestion"]; $dataQuestionLib[$key] = $ItemdataquestionFix; } } ///////////// if (isset($dataconfig["datarandom"]) and !empty($dataconfig["datarandom"])) { foreach ($dataconfig["datarandom"] as $itemdatarandom) { $totalquestion += $itemdatarandom["number_question"]; $point = $itemdatarandom["point_question"] / $itemdatarandom["number_question"]; $comm->reset(); $comm = $comm->select('*')->from('pls_question_lib t'); if (!empty($dataQuestionFix)) { $comm = $comm->where('t.question_cat_id=' . $itemdatarandom["idcate"] . ' AND t.id NOT IN(' . implode(',', $dataQuestionFix) . ')'); } else { $comm = $comm->where('t.question_cat_id=' . $itemdatarandom["idcate"]); } $comm = $comm->order('RAND()')->limit($itemdatarandom["number_question"]); $data = $comm->queryAll(); $dataNew = array(); if (!empty($data)) { foreach ($data as $key => $dataItem) { $dataNew[$key]["idquestion"] = $dataItem["id"]; $dataNew[$key]["point"] = $point; } $dataQuestionLib = array_merge($dataQuestionLib, $dataNew); } } } $dataTestUser = new WTestUser(); $dataTestUser->id_test_parent = $test_id; $dataTestUser->user_id = Yii::app()->user->id; $dataTestUser->dataquestion = json_encode($dataQuestionLib); $dataTestUser->course_id = $course_id; $dataTestUser->lecture_id = $lecture_id; $dataTestUser->kind = $kind; $dataTestUser->save(); } } else { if (!empty($dataTestUser->dataquestion)) { $dataQuestionLib = json_decode($dataTestUser->dataquestion, true); } } $total = count($dataQuestionLib); $kind = isset($_REQUEST['kind']) ? $_REQUEST['kind'] : ''; $model = new WUserTest(); $model->test_id = $test_id; $model->course_id = $course_id; $model->lecture_id = $lecture_id; $model->user_id = Yii::app()->user->id; $model->status = 0; $model->added_date = date('Y-m-d H:i:s'); if ($kind == '' or $kind == 1) { $model->test_kind = 1; } else { $model->test_kind = 0; } //echo $model->test_kind; exit(); $oneut = WUserTest::model()->find('test_id=:test_id and course_id=:course_id and lecture_id=:lecture_id and user_id=:user_id and test_kind=:test_kind', array(':test_id' => $test_id, ':course_id' => $course_id, ':lecture_id' => $lecture_id, ':user_id' => Yii::app()->user->id, ':test_kind' => $model->test_kind)); if (is_null($oneut)) { $model->save(); $user_test_id = $model->id; } else { if ($oneut->status >= 1) { $cl = WCourseLecture::model()->find('course_id=' . $course_id . ' AND lecture_id=' . $lecture_id); if ($kind == 1) { $this->redirect(Yii::app()->createUrl("wLecture/LectureView", array("course_lecture_id" => $cl->id))); } elseif ($kind == 0) { $this->redirect(Yii::app()->createUrl("wCourse/TraineeViewCourse", array("id" => $cl->course_id))); } } $user_test_id = $oneut->id; } $per_page = 1; $page_number = isset($_POST['page']) ? $_POST['page'] : 0; $position = $page_number * $per_page; if (!empty($total)) { $pagination = WFunction::gettab($dataQuestionLib); } else { $pagination = ''; } $this->render('/wTest/trainee/starttest', array('course_id' => $course_id, 'lecture_id' => $lecture_id, 'test' => $result, 'pagination' => $pagination, 'total' => $total, 'kind' => $model->test_kind, "question" => $dataQuestionLib, "user_test_id" => $user_test_id)); }