/** * Initialises table */ protected function init() { $tablecolumns = array('userpic', 'fullname'); $tableheaders = array(get_string('userpic'), get_string('fullnameuser')); $extrafields = get_extra_user_fields($this->get_context()); $ufields = user_picture::fields('u', $extrafields, $this->useridfield); $fields = 'c.id, c.timemodified as completed_timemodified, c.courseid, ' . $ufields; $from = '{feedback_completed} c ' . 'JOIN {user} u ON u.id = c.userid AND u.deleted = :notdeleted'; $where = 'c.anonymous_response = :anon AND c.feedback = :instance'; if ($this->feedbackstructure->get_courseid()) { $where .= ' AND c.courseid = :courseid'; } if ($this->is_downloading()) { // When downloading data: // Remove 'userpic' from downloaded data. array_shift($tablecolumns); array_shift($tableheaders); // Add all identity fields as separate columns. foreach ($extrafields as $field) { $fields .= ", u.{$field}"; $tablecolumns[] = $field; $tableheaders[] = get_user_field_name($field); } } if ($this->feedbackstructure->get_feedback()->course == SITEID && !$this->feedbackstructure->get_courseid()) { $tablecolumns[] = 'courseid'; $tableheaders[] = get_string('course'); } $tablecolumns[] = 'completed_timemodified'; $tableheaders[] = get_string('date'); $this->define_columns($tablecolumns); $this->define_headers($tableheaders); $this->sortable(true, 'lastname', SORT_ASC); $this->collapsible(true); $this->set_attribute('id', 'showentrytable'); $params = array(); $params['anon'] = FEEDBACK_ANONYMOUS_NO; $params['instance'] = $this->feedbackstructure->get_feedback()->id; $params['notdeleted'] = 0; $params['courseid'] = $this->feedbackstructure->get_courseid(); $group = groups_get_activity_group($this->feedbackstructure->get_cm(), true); if ($group) { $where .= ' AND c.userid IN (SELECT g.userid FROM {groups_members} g WHERE g.groupid = :group)'; $params['group'] = $group; } $this->set_sql($fields, $from, $where, $params); $this->set_count_sql("SELECT COUNT(c.id) FROM {$from} WHERE {$where}", $params); }
/** * Record from 'feedback' table corresponding to the current feedback * @return stdClass */ public function get_feedback() { return $this->structure->get_feedback(); }