Example #1
0
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();
    //}
}
Example #2
0
 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;
 }