/** * @param array $evals * @param array $links * @return array */ public static function get_all_users($evals = array(), $links = array()) { $coursecodes = array(); $users = array(); // By default add all user in course $coursecodes[api_get_course_id()] = '1'; $users = GradebookUtils::get_users_in_course(api_get_course_id()); foreach ($evals as $eval) { $coursecode = $eval->get_course_code(); // evaluation in course if (isset($coursecode) && !empty($coursecode)) { if (!array_key_exists($coursecode, $coursecodes)) { $coursecodes[$coursecode] = '1'; $users = array_merge($users, GradebookUtils::get_users_in_course($coursecode)); } } else { // course independent evaluation $tbl_user = Database::get_main_table(TABLE_MAIN_USER); $tbl_res = Database::get_main_table(TABLE_MAIN_GRADEBOOK_RESULT); $sql = 'SELECT user.user_id, lastname, firstname, user.official_code FROM ' . $tbl_res . ' as res, ' . $tbl_user . ' as user WHERE res.evaluation_id = ' . intval($eval->get_id()) . ' AND res.user_id = user.user_id '; $sql .= ' ORDER BY lastname, firstname'; if (api_is_western_name_order()) { $sql .= ' ORDER BY firstname, lastname'; } $result = Database::query($sql); $users = array_merge($users, GradebookUtils::get_user_array_from_sql_result($result)); } } foreach ($links as $link) { // links are always in a course $coursecode = $link->get_course_code(); if (!array_key_exists($coursecode, $coursecodes)) { $coursecodes[$coursecode] = '1'; $users = array_merge($users, GradebookUtils::get_users_in_course($coursecode)); } } return $users; }