Пример #1
0
 /**
  * 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);
 }
Пример #2
0
 /**
  * Record from 'feedback' table corresponding to the current feedback
  * @return stdClass
  */
 public function get_feedback()
 {
     return $this->structure->get_feedback();
 }