| @@ 2881-2907 (lines=27) @@ | ||
| 2878 | * |
|
| 2879 | * @return array |
|
| 2880 | */ |
|
| 2881 | public static function get_best_attempt_in_course($exercise_id, $courseId, $session_id) |
|
| 2882 | { |
|
| 2883 | $user_results = Event::get_all_exercise_results( |
|
| 2884 | $exercise_id, |
|
| 2885 | $courseId, |
|
| 2886 | $session_id, |
|
| 2887 | false |
|
| 2888 | ); |
|
| 2889 | ||
| 2890 | $best_score_data = array(); |
|
| 2891 | $best_score = 0; |
|
| 2892 | if (!empty($user_results)) { |
|
| 2893 | foreach ($user_results as $result) { |
|
| 2894 | if (!empty($result['exe_weighting']) && |
|
| 2895 | intval($result['exe_weighting']) != 0 |
|
| 2896 | ) { |
|
| 2897 | $score = $result['exe_result'] / $result['exe_weighting']; |
|
| 2898 | if ($score >= $best_score) { |
|
| 2899 | $best_score = $score; |
|
| 2900 | $best_score_data = $result; |
|
| 2901 | } |
|
| 2902 | } |
|
| 2903 | } |
|
| 2904 | } |
|
| 2905 | ||
| 2906 | return $best_score_data; |
|
| 2907 | } |
|
| 2908 | ||
| 2909 | /** |
|
| 2910 | * Get the best score in a exercise (NO Exercises in LPs ) |
|
| @@ 2918-2946 (lines=29) @@ | ||
| 2915 | * |
|
| 2916 | * @return array |
|
| 2917 | */ |
|
| 2918 | public static function get_best_attempt_by_user( |
|
| 2919 | $user_id, |
|
| 2920 | $exercise_id, |
|
| 2921 | $courseId, |
|
| 2922 | $session_id |
|
| 2923 | ) |
|
| 2924 | { |
|
| 2925 | $user_results = Event::get_all_exercise_results( |
|
| 2926 | $exercise_id, |
|
| 2927 | $courseId, |
|
| 2928 | $session_id, |
|
| 2929 | false, |
|
| 2930 | $user_id |
|
| 2931 | ); |
|
| 2932 | $best_score_data = array(); |
|
| 2933 | $best_score = 0; |
|
| 2934 | if (!empty($user_results)) { |
|
| 2935 | foreach ($user_results as $result) { |
|
| 2936 | if (!empty($result['exe_weighting']) && intval($result['exe_weighting']) != 0) { |
|
| 2937 | $score = $result['exe_result'] / $result['exe_weighting']; |
|
| 2938 | if ($score >= $best_score) { |
|
| 2939 | $best_score = $score; |
|
| 2940 | $best_score_data = $result; |
|
| 2941 | } |
|
| 2942 | } |
|
| 2943 | } |
|
| 2944 | } |
|
| 2945 | ||
| 2946 | return $best_score_data; |
|
| 2947 | } |
|
| 2948 | ||
| 2949 | /** |
|