$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';
/** * 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') . ": "; $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; }