Exemplo n.º 1
0
     $mytime = (int) $time_exe_date - (int) $time_start_date;
     $score = (double) $row_dates['exe_result'];
     $max_score = (double) $row_dates['exe_weighting'];
     $sql = "UPDATE {$TBL_LP_ITEM} SET\n                    max_score = '{$max_score}'\n                WHERE c_id = {$course_id} AND id = '" . $safe_item_id . "'";
     Database::query($sql);
     $sql = "SELECT id FROM {$TBL_LP_ITEM_VIEW}\n                WHERE\n                    c_id = {$course_id} AND\n                    lp_item_id = '{$safe_item_id}' AND\n                    lp_view_id = '" . $learnPath->lp_view_id . "'\n                ORDER BY id DESC\n                LIMIT 1";
     $res_last_attempt = Database::query($sql);
     if (Database::num_rows($res_last_attempt) && !api_is_invitee()) {
         $row_last_attempt = Database::fetch_row($res_last_attempt);
         $lp_item_view_id = $row_last_attempt[0];
         $exercise = new Exercise(api_get_course_int_id());
         $exercise->read($row_dates['exe_exo_id']);
         $status = 'completed';
         if (!empty($exercise->pass_percentage)) {
             $status = 'failed';
             $success = ExerciseLib::is_success_exercise_result($score, $max_score, $exercise->pass_percentage);
             if ($success) {
                 $status = 'passed';
             }
         }
         $sql = "UPDATE {$TBL_LP_ITEM_VIEW} SET\n                        status = '{$status}',\n                        score = {$score},\n                        total_time = {$mytime}\n                    WHERE id='" . $lp_item_view_id . "' AND c_id = {$course_id} ";
         if ($debug) {
             error_log($sql);
         }
         Database::query($sql);
         $sql = "UPDATE {$TBL_TRACK_EXERCICES} SET\n                        orig_lp_item_view_id = {$lp_item_view_id}\n                    WHERE exe_id = " . $safe_exe_id;
         Database::query($sql);
     }
 }
 if (intval($_GET['fb_type']) > 0) {
     $src = 'blank.php?msg=exerciseFinished';
Exemplo n.º 2
0
 /**
  * Returns an HTML ribbon to show on top of the exercise result, with
  * colouring depending on the success or failure of the student
  * @param $score
  * @param $weight
  * @param bool $check_pass_percentage
  * @return string
  */
 public function get_question_ribbon($score, $weight, $check_pass_percentage = false)
 {
     $eventMessage = null;
     $ribbon = '<div class="question_row">';
     $ribbon .= '<div class="ribbon">';
     if ($check_pass_percentage) {
         $is_success = ExerciseLib::is_success_exercise_result($score, $weight, $this->selectPassPercentage());
         // Color the final test score if pass_percentage activated
         $ribbon_total_success_or_error = "";
         if (ExerciseLib::is_pass_pourcentage_enabled($this->selectPassPercentage())) {
             if ($is_success) {
                 $eventMessage = $this->getOnSuccessMessage();
                 $ribbon_total_success_or_error = ' ribbon-total-success';
             } else {
                 $eventMessage = $this->getOnFailedMessage();
                 $ribbon_total_success_or_error = ' ribbon-total-error';
             }
         }
         $ribbon .= '<div class="rib rib-total ' . $ribbon_total_success_or_error . '">';
     } else {
         $ribbon .= '<div class="rib rib-total">';
     }
     $ribbon .= '<h3>' . get_lang('YourTotalScore') . ":&nbsp;";
     $ribbon .= ExerciseLib::show_score($score, $weight, false, true);
     $ribbon .= '</h3>';
     $ribbon .= '</div>';
     if ($check_pass_percentage) {
         $ribbon .= ExerciseLib::show_success_message($score, $weight, $this->selectPassPercentage());
     }
     $ribbon .= '</div>';
     $ribbon .= '</div>';
     $ribbon .= $eventMessage;
     return $ribbon;
 }