/** * Build the attendances * @param int $session_id Internal session ID * @param int $courseId Internal course ID * @param bool $with_base_content Whether to include content from the course without session or not * @param array $id_list If you want to restrict the structure to only the given IDs */ public function build_attendance($session_id = 0, $courseId = 0, $with_base_content = false, $id_list = array()) { $table_attendance = Database::get_course_table(TABLE_ATTENDANCE); $table_attendance_calendar = Database::get_course_table(TABLE_ATTENDANCE_CALENDAR); $sessionCondition = api_get_session_condition($session_id, true, $with_base_content); $sql = 'SELECT * FROM ' . $table_attendance . ' WHERE c_id = ' . $courseId . ' ' . $sessionCondition; $db_result = Database::query($sql); while ($row = Database::fetch_array($db_result, 'ASSOC')) { $obj = new Attendance($row); $sql = 'SELECT * FROM ' . $table_attendance_calendar . ' WHERE c_id = ' . $courseId . ' AND attendance_id = ' . $row['id']; $result = Database::query($sql); while ($sub_row = Database::fetch_array($result, 'ASSOC')) { $obj->add_attendance_calendar($sub_row); } $this->course->add_resource($obj); } }