function saveManualUserReport($id_user, $id_test, $id_track) { require_once $GLOBALS['where_lms'] . '/class.module/track.test.php'; list($title, $mod_doanswer, $point_type, $point_required, $question_random_number, $show_score, $show_score_cat, $show_doanswer, $show_solution, $show_only_status, $order_type) = sql_fetch_row(sql_query("\r\n\tSELECT title, mod_doanswer, point_type, point_required, question_random_number, \r\n\t\t\tshow_score, show_score_cat, show_doanswer, \r\n\t\t\tshow_solution, show_only_status, order_type\r\n\tFROM " . $GLOBALS['prefix_lms'] . "_test \r\n\tWHERE idTest = '" . (int) $id_test . "'")); list($score, $bonus_score, $date_attempt, $date_attempt_mod, $score_status) = sql_fetch_row(sql_query("\r\n\tSELECT score, bonus_score, date_attempt, date_attempt_mod, score_status \r\n\tFROM " . $GLOBALS['prefix_lms'] . "_testtrack \r\n\tWHERE idTrack = '" . (int) $id_track . "'")); if ($order_type >= 2) { $re_visu_quest = sql_query("SELECT idQuest \r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_testtrack_quest \r\n\t\tWHERE idTrack = '" . (int) $id_track . "' "); while (list($id_q) = sql_fetch_row($re_visu_quest)) { $quest_see[] = $id_q; } $query_question = "\r\n\t\tSELECT q.idQuest, q.type_quest, t.type_file, t.type_class, q.idCategory \r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_testquest AS q JOIN " . $GLOBALS['prefix_lms'] . "_quest_type AS t \r\n\t\tWHERE q.idTest = '" . $id_test . "' AND q.type_quest = t.type_quest AND q.idQuest IN (" . implode($quest_see, ',') . ") \r\n\t\tORDER BY q.sequence"; } else { $query_question = "\r\n\t\tSELECT q.idQuest, q.type_quest, t.type_file, t.type_class, q.idCategory \r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_testquest AS q JOIN " . $GLOBALS['prefix_lms'] . "_quest_type AS t \r\n\t\tWHERE q.idTest = '" . $id_test . "' AND q.type_quest = t.type_quest \r\n\t\tORDER BY q.sequence"; } $point_do = 0; $reQuest = sql_query($query_question); while (list($id_quest, $type_quest, $type_file, $type_class, $id_cat) = sql_fetch_row($reQuest)) { // instance question class require_once $GLOBALS['where_lms'] . '/modules/question/' . $type_file; $quest_obj = eval("return new {$type_class}( {$id_quest} );"); // check score if ($type_quest != 'title' && $type_quest != 'break_page') { $quest_max_score = $quest_obj->getMaxScore(); if (isset($_POST['new_user_score'][$id_quest]) && $_POST['new_user_score'][$id_quest] != '') { if (!$quest_obj->setUserScore($id_track, $id_quest, $_POST['new_user_score'][$id_quest])) { $quest_point_do = $quest_obj->userScore($id_track); } else { $quest_point_do = $_POST['new_user_score'][$id_quest]; } } else { $quest_point_do = $quest_obj->userScore($id_track); } // end else $point_do = round($point_do + $quest_point_do, 2); $max_score = round($max_score + $quest_max_score, 2); } // end if } if ($point_type != '1') { $save_score = $point_do; } else { $save_score = round(round($point_do / $max_score, 2) * 100, 2); } //if($score_status == 'valid') { $query_scores = "\r\n\tUPDATE " . $GLOBALS['prefix_lms'] . "_testtrack\r\n\tSET score = '" . $save_score . "',\r\n\t\tbonus_score = '" . $_POST['bonus_score'] . "'\r\n\tWHERE idTest = '" . $id_test . "' AND idUser = '******'"; $re &= sql_query($query_scores); // update status in lesson if ($point_do >= $point_required) { $next_status = 'passed'; } else { $next_status = 'failed'; } $test_track = new Track_Test($id_track); $test_track->setDate(date('Y-m-d H:i:s')); $test_track->status = $score_status; $test_track->update(); //} }
function deleteTestTrack($id_test, $id_user) { require_once $GLOBALS['where_lms'] . '/class.module/track.test.php'; require_once _base_ . '/lib/lib.upload.php'; $query = "\r\n\t\tSELECT idTrack \r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_testtrack \r\n\t\tWHERE idTest='" . $id_test . "' AND idUser='******'"; $rs = sql_query($query); if (!$rs) { return false; } list($id_track) = sql_fetch_row($rs); if (!$id_track) { return false; } $query_question = "\r\n\t\tSELECT q.idQuest, q.type_quest, t.type_file, t.type_class \r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_testquest AS q JOIN " . $GLOBALS['prefix_lms'] . "_quest_type AS t \r\n\t\tWHERE q.idTest = '" . $id_test . "' AND q.type_quest = t.type_quest \r\n\t\tORDER BY q.sequence"; $re_quest = sql_query($query_question); while (list($idQuest, $type_quest, $type_file, $type_class) = sql_fetch_row($re_quest)) { require_once $GLOBALS['where_lms'] . '/modules/question/' . $type_file; $quest_obj = eval("return new {$type_class}( {$idQuest} );"); if (!$quest_obj->deleteAnswer($id_track)) { return false; } } $query_page = "\r\n\t\tDELETE FROM " . $GLOBALS['prefix_lms'] . "_testtrack_page \r\n\t\tWHERE idTrack = '" . $id_track . "'"; $query_quest = "\r\n\t\tDELETE FROM " . $GLOBALS['prefix_lms'] . "_testtrack_quest \r\n\t\tWHERE idTrack = '" . $id_track . "'"; if (!sql_query($query_page)) { return false; } if (!sql_query($query_quest)) { return false; } $re_update = Track_Test::deleteTrack($id_track); return $re_update; }