addElement('select', 'session_id', get_lang('Sessions'), $my_session_list); $form->addButtonFilter(get_lang('Filter')); if (!empty($_REQUEST['score'])) { $filter_score = intval($_REQUEST['score']); } else { $filter_score = 70; } if (!empty($_REQUEST['session_id'])) { $session_id = intval($_REQUEST['session_id']); } else { $session_id = 0; } if (empty($session_id)) { $session_id = key($my_session_list); } $form->setDefaults(['session_id' => $session_id]); $course_list = SessionManager::get_course_list_by_session_id($session_id); if (!$export_to_xls) { Display :: display_header(get_lang("MySpace")); echo '
'; if ($global) { echo MySpace::getTopMenu(); } else { echo '
'.get_lang('StudentsTracking').' | '.get_lang('CourseTracking').' '; echo '
'; } echo '
'; if (api_is_platform_admin()) { echo MySpace::getAdminActions(); } echo '

'.get_lang('LPExerciseResultsBySession').'

'; $form->display(); echo Display::return_message(get_lang('StudentScoreAverageIsCalculatedBaseInAllLPsAndAllAttempts')); } $users = SessionManager::get_users_by_session($session_id); $course_average = $course_average_counter = []; $counter = 0; $main_result = []; // Getting course list foreach ($course_list as $current_course) { $course_info = api_get_course_info($current_course['code']); $_course = $course_info; $attempt_result = []; // Getting LP list $list = new LearnpathList('', $course_info, $session_id); $lp_list = $list->get_flat_list(); // Looping LPs foreach ($lp_list as $lp_id => $lp) { $exercise_list = Event::get_all_exercises_from_lp($lp_id, $course_info['real_id']); // Looping Chamilo Exercises in LP foreach ($exercise_list as $exercise) { $exercise_stats = Event::get_all_exercise_event_from_lp( $exercise['path'], $course_info['real_id'], $session_id ); // Looping Exercise Attempts foreach ($exercise_stats as $stats) { $attempt_result[$stats['exe_user_id']]['result'] += $stats['exe_result'] / $stats['exe_weighting']; $attempt_result[$stats['exe_user_id']]['attempts']++; } } } $main_result[$current_course['code']] = $attempt_result; } $total_average_score = 0; $total_average_score_count = 0; $html_result = ''; if (!empty($users) && is_array($users)) { $html_result .= ''; $html_result .= ''; foreach ($course_list as $item) { $html_result .= ''; } $html_result .= ''; $html_result .= ''; foreach ($users as $user) { $total_student = 0; $counter++; $s_css_class = 'row_even'; if ($counter % 2 == 0) { $s_css_class = 'row_odd'; } $html_result .= ""; // Getting course list $counter = 0; $total_result_by_user = 0; foreach ($course_list as $current_course) { $total_course = 0; $html_result .= ""; } if (empty($counter)) { $total_student = '-'; } else { $total_student = $total_result_by_user / $counter; $total_average_score += $total_student; $total_average_score_count++; } $string_date = Tracking::get_last_connection_date($user['user_id'], true); $html_result .= ""; } $html_result .= ""; $total_average = 0; $counter = 0; foreach ($course_list as $course_item) { if (!empty($course_average_counter[$course_item['code']])) { $average_per_course = round( $course_average[$course_item['code']] / ($course_average_counter[$course_item['code']] * 100) * 100, 2 ); } else { $average_per_course = 0; } if (!empty($average_per_course)) { $counter++; } $total_average = $total_average + $average_per_course; $html_result .= ""; } if (!empty($total_average_score_count)) { $total_average = round($total_average_score / ($total_average_score_count * 100) * 100, 2); } else { $total_average = '-'; } $html_result .= ''; $html_result .= ""; $html_result .= ""; $html_result .= '
'.get_lang('User').''.$item['title'].'
'.get_lang('AverageScore').' %
'.get_lang('AverageScore').' %'.get_lang('LastConnexionDate').'
"; $html_result .= $user['firstname'].' '.$user['lastname']; $html_result .= ""; $result = '-'; if (isset($main_result[$current_course['code']][$user['user_id']])) { $user_info_stat = $main_result[$current_course['code']][$user['user_id']]; if (!empty($user_info_stat['result']) && !empty($user_info_stat['attempts'])) { $result = round( $user_info_stat['result'] / $user_info_stat['attempts'] * 100, 2 ); $total_course += $result; $total_result_by_user += $result; $course_average[$current_course['code']] += $total_course; $course_average_counter[$current_course['code']]++; $result = $result.' ('.$user_info_stat['attempts'].' '.get_lang('Attempts').')'; $counter++; } } $html_result .= $result; $html_result .= "$total_student$string_date
".get_lang('AverageScore')."$average_per_course'.$total_average.'-
'; } else { echo Display::return_message(get_lang('NoResults'), 'warning'); } if (!$export_to_xls) { echo $html_result; } Display::display_footer();