public function actionPopup() { $str = isset($_POST['user_test_id']) ? $_POST['user_test_id'] : ''; $arrId = explode('|', $str); $user_test_id = $arrId[0]; $user_id = $arrId[1]; $arrUserTest = WUserTest::model()->find('id=:id and user_id=:user_id', array(':id' => $user_test_id, ':user_id' => $user_id)); $arrAns = WUserAnswers::model()->findAll('user_test_id=:user_test_id', array(':user_test_id' => $user_test_id)); $html = $this->renderPartial('/wUserTest/_popup', array('data' => $arrUserTest, 'userans' => $arrAns, 'user_id' => $user_id, 'user_test_id' => $user_test_id)); echo $html; exit; }
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); }
public static function getIDAnswer($question_id, $ut_id) { $criteria = new CDbCriteria(); $criteria->distinct = true; $criteria->select = 'answer_id'; $criteria->condition = 'question_id=:question_id and user_test_id=:user_test_id'; $criteria->params = array(':question_id' => $question_id, ':user_test_id' => $ut_id); $rs = WUserAnswers::model()->findAll($criteria); if ($rs) { $arrId = array(); foreach ($rs as $r) { $arrId[] = $r['answer_id']; } return $arrId; } else { return null; } }
public static function checkDoTestText($user_test_id) { $criteria = new CDbCriteria(); $criteria->condition = 'user_test_id=:user_test_id and user_answer_text !=:user_answer_text'; $criteria->params = array(':user_test_id' => $user_test_id, ':user_answer_text' => ''); $rs = WUserAnswers::model()->findAll($criteria); //var_dump($rs);exit(); if ($rs) { return true; } else { return false; } }
public function actionAutoSaveQuestionAnswer() { $user_test_id = isset($_REQUEST["user_test_id"]) ? $_REQUEST["user_test_id"] : NULL; $json = array("result" => "true"); if (!empty($user_test_id)) { $db = Yii::app()->db; $comm = $db->createCommand()->select('t.*,t5.fullname,t5.username,t4.total_point,t2.course_name,t3.lecture_name,t4.test_name, (SELECT dataquestion FROM pls_test_user WHERE user_id=t.user_id AND id_test_parent=t.test_id AND course_id=t.course_id AND lecture_id=t.lecture_id AND kind=t.test_kind) as dataquestion ')->from('pls_user_test t')->leftJoin('pls_course t2', 't2.id=t.course_id')->leftJoin('pls_lecture t3', 't3.id=t.lecture_id')->leftJoin('pls_test_parent t4', 't4.id=t.test_id')->leftJoin('pls_user t5', 't5.id=t.user_id')->where('t.id IS NOT NULL AND t.id=' . $user_test_id . ' AND t.user_id=' . Yii::app()->user->id); $result = $comm->queryRow(); if (!empty($result)) { $dataQuestion = (isset($result["dataquestion"]) and !empty($result["dataquestion"])) ? json_decode($result["dataquestion"], true) : array(); if (!empty($dataQuestion)) { foreach ($dataQuestion as $itemquestion) { $dataQuestion = WQuestionLib::model()->find("id=" . $itemquestion["idquestion"]); $model = WUserAnswers::model()->find("user_id=" . Yii::app()->user->id . " AND test_id=" . $result["test_id"] . " AND user_test_id=" . $user_test_id . " AND question_id=" . $itemquestion["idquestion"]); if (empty($model)) { $model = new WUserAnswers(); $model->test_id = $result["test_id"]; $model->user_test_id = $user_test_id; $model->question_id = $itemquestion["idquestion"]; $model->user_answer_id = ","; $model->question_type = $dataQuestion["question_type"]; $model->user_id = Yii::app()->user->id; $model->doing = 0; $model->created_date = date('Y-m-d H:i:s'); if (!$model->save()) { $json = array("result" => "false"); } } } } } } echo json_encode($json); }
<?php $strChoice = '<table width="800px" border=1> <thead> <tr> <th>' . Yii::t('web/home', 'Question') . '</th> <th>' . Yii::t('web/home', 'Results') . '</th> <th>' . Yii::t('web/home', 'Points') . '</th> </tr> </thead> <tbody>'; $strWrite = ''; $arrQues = WQuestion::model()->findAll('test_id=:test_id', array(':test_id' => $data->test->id)); $i = 1; foreach ($arrQues as $ques) { if ($ques['question_type'] == 2) { $arrUA = WUserAnswers::model()->find('question_id=:question_id and user_test_id=:user_test_id', array(':question_id' => $ques['id'], ':user_test_id' => $user_test_id)); $strWrite .= '<div class="quesw"><span style="font-weight: bold;">' . Yii::t('web/home', 'Question') . ' ' . $i . '</span> (' . $ques['point'] . ' ' . Yii::t('web/home', 'points') . ')</div> <div class="name_ques">' . $ques['question_text'] . '</div> <input type="hidden" id="pointstr" value="' . $ques['point'] . '" /> <div class="ans" style="font-style: italic;">' . Yii::t('web/home', 'Answer') . ':</div> <div class="answer"> <p>' . $arrUA['user_answer_text'] . '</p> </div>'; if ($arrUA['user_answer_text'] != '') { $name_ques = $ques['question_text']; //$q_id = $ques['id']; $point = WUserTest::model()->find('id=:id', array(':id' => $user_test_id)); $strChoice .= '<tr><td style="text-align:left;padding-left: 48px;">' . Yii::t('web/home', 'Question') . ' ' . $i . ': ' . $name_ques . '</td><td>Writing</td><td>' . $point['point_text'] . '</td></tr>'; } } elseif ($ques['question_type'] == 1 || $ques['question_type'] == 4) { $name_ques = $ques['question_text'];
public function actionDoingtest() { $per_page = 1; $page_number = isset($_POST['page']) ? $_POST['page'] : 0; //echo $page_number; $test_id = isset($_POST['test_id']) ? $_POST['test_id'] : ''; $course_id = isset($_POST['course_id']) ? $_POST['course_id'] : ''; $lecture_id = isset($_POST['lecture_id']) ? $_POST['lecture_id'] : ''; $oneUT = WUserTest::model()->find('test_id=:test_id and course_id=:course_id and lecture_id=:lecture_id and user_id=:user_id', array(':test_id' => $test_id, ':course_id' => $course_id, ':lecture_id' => $lecture_id, ':user_id' => Yii::app()->user->id)); $position = ($page_number - 1) * $per_page; $total = WQuestion::totalQuestion($test_id); $pagination = WFunction::paging_question($total, $per_page); $question = WQuestion::listQuestion($test_id, $position, $per_page); $nameButton = isset($_POST['nameButton']) ? $_POST['nameButton'] : ''; $UA = ''; $arrUA = array(); if ($nameButton == 'next') { $ques_type = isset($_POST['question_type']) ? $_POST['question_type'] : ''; $ques_id = isset($_POST['question_id']) ? $_POST['question_id'] : ''; $point = isset($_POST['point']) ? $_POST['point'] : ''; $total_point = $oneUT['pass_score_point']; if ($ques_type == 1) { $answer = $_POST['rdAns']; //echo $answer;exit(); if ($answer != '') { $modelUserAnswers = new WUserAnswers(); $modelUserAnswers->user_test_id = $oneUT['id']; $modelUserAnswers->question_id = $ques_id; $modelUserAnswers->answer_id = $answer; $modelUserAnswers->user_answer_id = $answer; $modelUserAnswers->user_answer_text = ''; $modelUserAnswers->created_date = date('Y-m-d H:i:s'); $oneAns = WUserAnswers::model()->find('user_test_id=:user_test_id and question_id=:question_id', array(':user_test_id' => $oneUT['id'], ':question_id' => $ques_id)); if (is_null($oneAns)) { $modelUserAnswers->save(); //Yii::app()->session['ans_id'.$ques_id] = $modelUserAnswers->id; } else { //echo $oneAns['id'];exit(); //$modelUserAnswers->updateByPk($oneAns['id'], array($answer)); WUserAnswers::updateUA($oneAns['id'], $answer); } if (WUserAnswers::checkAnswer($ques_id, $ques_type)) { $point_user = $point + $total_point; } else { $point_user = $total_point; } WUserTest::updatePointTrainee($test_id, $course_id, Yii::app()->user->id, $point_user, $ques_type); } else { } } elseif ($ques_type == 4) { $stranswer = $_POST['chkAns']; $answers = explode(',', $stranswer); //var_dump($answers); exit(); $modelUserAnswersM = new WUserAnswers(); if (count($answers) > 0) { $arrValues = array(); foreach ($answers as $a) { //echo $a.' '.$ques_id;exit(); //$modelUserAnswersM->user_test_id = $oneUT['id']; // $modelUserAnswersM->question_id = $ques_id; // $modelUserAnswersM->answer_id = $a; // $modelUserAnswersM->user_answer_id = $a; // $modelUserAnswersM->user_answer_text = ''; // $modelUserAnswersM->created_date = date('Y-m-d H:i:s'); // $oneAns1 = WUserAnswers::model()->find( // 'user_test_id=:user_test_id and // question_id=:question_id and // answer_id=:answer_id', // array( // ':user_test_id'=> $oneUT['id'], // ':question_id' => $ques_id, // ':answer_id'=> $a // )); // if(isset($oneAns1)){ // $modelUserAnswersM->save(); // }else{ // WUserAnswers::updateUA($oneAns1['id'], $a); // } $arrValues[] = '("", ' . $oneUT['id'] . ', ' . $ques_id . ', ' . $a . ', ' . $a . ', "", "' . date("Y-m-d H:i:s") . '")'; } $sql = "INSERT INTO {{user_answers}} (`id`, `user_test_id`, `question_id`, `answer_id`, `user_answer_id`, `user_answer_text`, `created_date`) VALUES " . implode(',', $arrValues) . ""; WUserAnswers::insertAnswerM($sql); if (WUserAnswers::checkAnswer($ques_id, $ques_type)) { $point_user = $point + $total_point; } else { $point_user = $total_point; } WUserTest::updatePointTrainee($test_id, $course_id, Yii::app()->user->id, $point_user, $ques_type); } } elseif ($ques_type == 2) { $answer = $_POST['txtFree']; if ($answer != '') { $modelUserAnswers = new WUserAnswers(); $modelUserAnswers->user_test_id = $oneUT['id']; $modelUserAnswers->question_id = $ques_id; $modelUserAnswers->answer_id = ''; $modelUserAnswers->user_answer_id = ''; $modelUserAnswers->user_answer_text = $answer; $modelUserAnswers->created_date = date('Y-m-d H:i:s'); $oneAns = WUserAnswers::model()->find('user_test_id=:user_test_id and question_id=:question_id', array(':user_test_id' => $oneUT['id'], ':question_id' => $ques_id)); if (is_null($oneAns)) { $modelUserAnswers->save(); } else { WUserAnswers::updateUA($oneAns['id'], $answer); } } } WUserTest::updateStatusTest($test_id, $course_id, 1); } elseif ($nameButton == 'previous') { $ques_id = isset($_POST['question_id']) ? $_POST['question_id'] : ''; $ques_type = isset($_POST['question_type']) ? $_POST['question_type'] : ''; if ($ques_type == 1 || $ques_type == 2) { $UA = WUserAnswers::getIDTextAnswer($ques_id, $oneUT['id'], $ques_type); //echo $UA;exit(); } else { $arrUA = WUserAnswers::getIDAnswer($ques_id, $oneUT['id']); } } elseif ($nameButton == 'finished') { $ques_type = isset($_POST['question_type']) ? $_POST['question_type'] : ''; $ques_id = isset($_POST['question_id']) ? $_POST['question_id'] : ''; $point = isset($_POST['point']) ? $_POST['point'] : ''; $total_point = $oneUT['pass_score_point']; if ($ques_type == 1) { $answer = $_POST['rdAns']; if ($answer != '') { $modelUserAnswers = new WUserAnswers(); $modelUserAnswers->user_test_id = $oneUT['id']; $modelUserAnswers->question_id = $ques_id; $modelUserAnswers->answer_id = $answer; $modelUserAnswers->user_answer_id = $answer; $modelUserAnswers->user_answer_text = ''; $modelUserAnswers->created_date = date('Y-m-d H:i:s'); $oneAns = WUserAnswers::model()->find('user_test_id=:user_test_id and question_id=:question_id', array(':user_test_id' => $oneUT['id'], ':question_id' => $ques_id)); if (is_null($oneAns)) { $modelUserAnswers->save(); //Yii::app()->session['ans_id'.$ques_id] = $modelUserAnswers->id; } else { //echo $oneAns['id'];exit(); //$modelUserAnswers->updateByPk($oneAns['id'], array($answer)); WUserAnswers::updateUA($oneAns['id'], $answer); } if (WUserAnswers::checkAnswer($ques_id, $ques_type)) { $point_user = $total_point + $point; } else { $point_user = $total_point; } WUserTest::updatePointTrainee($test_id, $course_id, Yii::app()->user->id, $point_user, $ques_type); } else { } } elseif ($ques_type == 4) { $stranswer = $_POST['chkAns']; $answermm = explode(',', $stranswer); $modelUserAnswersMM = new WUserAnswers(); if (count($answermm) > 0) { $arrValues = array(); foreach ($answermm as $a) { //$modelUserAnswersMM->user_test_id = $oneUT['id']; // $modelUserAnswersMM->question_id = $ques_id; // $modelUserAnswersMM->answer_id = $a; // $modelUserAnswersMM->user_answer_id = $a; // $modelUserAnswersMM->user_answer_text = ''; // $modelUserAnswersMM->created_date = date('Y-m-d H:i:s'); $arrValues[] = '("", ' . $oneUT['id'] . ', ' . $ques_id . ', ' . $a . ', ' . $a . ', "" , "' . date("Y-m-d H:i:s") . '")'; //$oneAns2 = WUserAnswers::model()->find('user_test_id=:user_test_id and question_id=:question_id and answer_id=:answer_id', array(':user_test_id'=> $oneUT['id'], ':question_id' => $ques_id, ':answer_id'=> $a)); // if(is_null($oneAns2)){ // // $modelUserAnswersMM->save(); // // }else{ // WUserAnswers::updateUA($oneAns2['id'], $a); // } } $sql = "INSERT INTO {{user_answers}} (`id`, `user_test_id`, `question_id`, `answer_id`, `user_answer_id`, `user_answer_text`, `created_date`) VALUES " . implode(',', $arrValues) . ""; WUserAnswers::insertAnswerM($sql); if (WUserAnswers::checkAnswer($ques_id, $ques_type)) { $point_user = $total_point + $point; } else { $point_user = $total_point; } WUserTest::updatePointTrainee($test_id, $course_id, Yii::app()->user->id, $point_user, $ques_type); } } elseif ($ques_type == 2) { $answer = $_POST['txtFree']; if ($answer != '') { $modelUserAnswers = new WUserAnswers(); $modelUserAnswers->user_test_id = $oneUT['id']; $modelUserAnswers->question_id = $ques_id; $modelUserAnswers->answer_id = ''; $modelUserAnswers->user_answer_id = ''; $modelUserAnswers->user_answer_text = $answer; $modelUserAnswers->created_date = date('Y-m-d H:i:s'); $oneAns = WUserAnswers::model()->find('user_test_id=:user_test_id and question_id=:question_id', array(':user_test_id' => $oneUT['id'], ':question_id' => $ques_id)); if (is_null($oneAns)) { $modelUserAnswers->save(); } else { WUserAnswers::updateUA($oneAns['id'], $answer); } } } $url = Yii::app()->params->url_base . '/index.php?r=wTest/result&test_id=' . $test_id . '&course_id=' . $course_id . '&lecture_id=' . $lecture_id . '&total=' . $total; echo "<script type='text/javascript'>top.location.href = '{$url}';</script>"; exit; } else { $ques1 = $question[0]; if ($ques1['question_type'] == 1 || $ques1['question_type'] == 2) { $UA = WUserAnswers::getIDTextAnswer($ques1['id'], $oneUT['id'], $ques1['question_type']); //echo $UA;exit(); } else { $arrUA = WUserAnswers::getIDAnswer($ques1['id'], $oneUT['id']); } } $html = $this->renderPartial('/wTest/trainee/_doingtest', array('question' => $question, 'ua' => $UA, 'arrUA' => $arrUA, 'page_number' => $page_number, 'total' => $total, 'test_id' => $test_id, 'course_id' => $course_id, 'lecture_id' => $lecture_id)); echo $html; exit; }
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer $id the ID of the model to be loaded * @return WUserAnswers the loaded model * @throws CHttpException */ public function loadModel($id) { $model = WUserAnswers::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }