| @@ 2801-2827 (lines=27) @@ | ||
| 2798 | * |
|
| 2799 | * @return array |
|
| 2800 | */ |
|
| 2801 | public static function get_best_attempt_in_course($exercise_id, $courseId, $session_id) |
|
| 2802 | { |
|
| 2803 | $user_results = Event::get_all_exercise_results( |
|
| 2804 | $exercise_id, |
|
| 2805 | $courseId, |
|
| 2806 | $session_id, |
|
| 2807 | false |
|
| 2808 | ); |
|
| 2809 | ||
| 2810 | $best_score_data = array(); |
|
| 2811 | $best_score = 0; |
|
| 2812 | if (!empty($user_results)) { |
|
| 2813 | foreach ($user_results as $result) { |
|
| 2814 | if (!empty($result['exe_weighting']) && |
|
| 2815 | intval($result['exe_weighting']) != 0 |
|
| 2816 | ) { |
|
| 2817 | $score = $result['exe_result'] / $result['exe_weighting']; |
|
| 2818 | if ($score >= $best_score) { |
|
| 2819 | $best_score = $score; |
|
| 2820 | $best_score_data = $result; |
|
| 2821 | } |
|
| 2822 | } |
|
| 2823 | } |
|
| 2824 | } |
|
| 2825 | ||
| 2826 | return $best_score_data; |
|
| 2827 | } |
|
| 2828 | ||
| 2829 | /** |
|
| 2830 | * Get the best score in a exercise (NO Exercises in LPs ) |
|
| @@ 2838-2866 (lines=29) @@ | ||
| 2835 | * |
|
| 2836 | * @return array |
|
| 2837 | */ |
|
| 2838 | public static function get_best_attempt_by_user( |
|
| 2839 | $user_id, |
|
| 2840 | $exercise_id, |
|
| 2841 | $courseId, |
|
| 2842 | $session_id |
|
| 2843 | ) |
|
| 2844 | { |
|
| 2845 | $user_results = Event::get_all_exercise_results( |
|
| 2846 | $exercise_id, |
|
| 2847 | $courseId, |
|
| 2848 | $session_id, |
|
| 2849 | false, |
|
| 2850 | $user_id |
|
| 2851 | ); |
|
| 2852 | $best_score_data = array(); |
|
| 2853 | $best_score = 0; |
|
| 2854 | if (!empty($user_results)) { |
|
| 2855 | foreach ($user_results as $result) { |
|
| 2856 | if (!empty($result['exe_weighting']) && intval($result['exe_weighting']) != 0) { |
|
| 2857 | $score = $result['exe_result'] / $result['exe_weighting']; |
|
| 2858 | if ($score >= $best_score) { |
|
| 2859 | $best_score = $score; |
|
| 2860 | $best_score_data = $result; |
|
| 2861 | } |
|
| 2862 | } |
|
| 2863 | } |
|
| 2864 | } |
|
| 2865 | ||
| 2866 | return $best_score_data; |
|
| 2867 | } |
|
| 2868 | ||
| 2869 | /** |
|