Exemplo n.º 1
0
 /**
  * @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;
 }