userid = $userid; $this->datagen = new UserDataGenerator($userid, $evals, $links); if (isset($addparams)) { $this->set_additional_parameters($addparams); } $column = 0; $this->set_header($column++, get_lang('Type')); $this->set_header($column++, get_lang('Evaluation')); $this->set_header($column++, get_lang('Course')); $this->set_header($column++, get_lang('Category')); $this->set_header($column++, get_lang('EvaluationAverage')); $this->set_header($column++, get_lang('Result')); $scoredisplay = ScoreDisplay::instance(); if ($scoredisplay->is_custom()) { $this->set_header($column++, get_lang('Display')); } } /** * Function used by SortableTable to get total number of items in the table. */ public function get_total_number_of_items() { return $this->datagen->get_total_items_count(); } /** * Function used by SortableTable to generate the data to display. */ public function get_table_data($from = 1, $per_page = null, $column = null, $direction = null, $sort = null) { $scoredisplay = ScoreDisplay::instance(); // determine sorting type switch ($this->column) { // Type case 0: $sorting = UserDataGenerator::UDG_SORT_TYPE; break; case 1: $sorting = UserDataGenerator::UDG_SORT_NAME; break; case 2: $sorting = UserDataGenerator::UDG_SORT_COURSE; break; case 3: $sorting = UserDataGenerator::UDG_SORT_CATEGORY; break; case 4: $sorting = UserDataGenerator::UDG_SORT_AVERAGE; break; case 5: $sorting = UserDataGenerator::UDG_SORT_SCORE; break; case 6: $sorting = UserDataGenerator::UDG_SORT_MASK; break; } if ($this->direction === 'DESC') { $sorting |= UserDataGenerator::UDG_SORT_DESC; } else { $sorting |= UserDataGenerator::UDG_SORT_ASC; } $data_array = $this->datagen->get_data($sorting, $from, $this->per_page); // generate the data to display $sortable_data = []; foreach ($data_array as $data) { if ($data[2] != '') { // filter by course removed $row = []; $row[] = $this->build_type_column($data[0]); $row[] = $this->build_name_link($data[0]); $row[] = $data[2]; $row[] = $data[3]; $row[] = $data[4]; $row[] = $data[5]; if ($scoredisplay->is_custom()) { $row[] = $data[6]; } $sortable_data[] = $row; } } return $sortable_data; } /** * @param $item * * @return string */ private function build_type_column($item) { return GradebookUtils::build_type_icon_tag($item->get_icon_name()); } /** * @param $item * * @return string */ private function build_name_link($item) { switch ($item->get_item_type()) { // evaluation case 'E': return ' ' .'' .$item->get_name() .''; // link case 'L': return ' ' .$item->get_name() .'' .' ['.$item->get_type_name().']'; } } }