protected function add_all_values_to_output() {
        $tablecolumns = array_keys($this->columns);
        $tableheaders = $this->headers;

        $items = $this->feedbackstructure->get_items(true);
        if (!$this->is_downloading() && !$this->buildforexternal) {
            // In preview mode do not show all columns or the page becomes unreadable.
            // The information message will be displayed to the teacher that the rest of the data can be viewed when downloading.
            $items = array_slice($items, 0, self::PREVIEWCOLUMNSLIMIT, true);
        }

        $columnscount = 0;
        $this->hasmorecolumns = max(0, count($items) - self::TABLEJOINLIMIT);

        // Add feedback response values.
        foreach ($items as $nr => $item) {
            if ($columnscount++ < self::TABLEJOINLIMIT) {
                // Mysql has a limit on the number of tables in the join, so we only add limited number of columns here,
                // the rest will be added in {@link self::build_table()} and {@link self::build_table_chunk()} functions.
                $this->sql->fields .= ", v{$nr}.value AS val{$nr}";
                $this->sql->from .= " LEFT OUTER JOIN {feedback_value} v{$nr} " .
                    "ON v{$nr}.completed = c.id AND v{$nr}.item = :itemid{$nr}";
                $this->sql->params["itemid{$nr}"] = $item->id;
            }

            $tablecolumns[] = "val{$nr}";
            $itemobj = feedback_get_item_class($item->typ);
            $tableheaders[] = $itemobj->get_display_name($item);
        }

        // Add 'Delete entry' column.
        if (!$this->is_downloading() && has_capability('mod/feedback:deletesubmissions', $this->get_context())) {
            $tablecolumns[] = 'deleteentry';
            $tableheaders[] = '';
        }

        $this->define_columns($tablecolumns);
        $this->define_headers($tableheaders);
    }
protected function add_all_values_to_output() {
        $tablecolumns = array_keys($this->columns);
        $tableheaders = $this->headers;

        $items = $this->feedbackstructure->get_items(true);
        if (!$this->is_downloading() && !$this->buildforexternal) {
            // In preview mode do not show all columns or the page becomes unreadable.
            // The information message will be displayed to the teacher that the rest of the data can be viewed when downloading.
            $items = array_slice($items, 0, self::PREVIEWCOLUMNSLIMIT, true);
        }

        $columnscount = 0;
        $this->hasmorecolumns = max(0, count($items) - self::TABLEJOINLIMIT);

        // Add feedback response values.
        foreach ($items as $nr => $item) {
            if ($columnscount++ < self::TABLEJOINLIMIT) {
                // Mysql has a limit on the number of tables in the join, so we only add limited number of columns here,
                // the rest will be added in {@link self::build_table()} and {@link self::build_table_chunk()} functions.
                $this->sql->fields .= ", v{$nr}.value AS val{$nr}";
                $this->sql->from .= " LEFT OUTER JOIN {feedback_value} v{$nr} " .
                    "ON v{$nr}.completed = c.id AND v{$nr}.item = :itemid{$nr}";
                $this->sql->params["itemid{$nr}"] = $item->id;
            }

            $tablecolumns[] = "val{$nr}";
            $itemobj = feedback_get_item_class($item->typ);
            $tableheaders[] = $itemobj->get_display_name($item);
        }

        // Add 'Delete entry' column.
        if (!$this->is_downloading() && has_capability('mod/feedback:deletesubmissions', $this->get_context())) {
            $tablecolumns[] = 'deleteentry';
            $tableheaders[] = '';
        }

        $this->define_columns($tablecolumns);
        $this->define_headers($tableheaders);
    }
protected function add_all_values_to_output ( ) { $ tablecolumns = array_keys ( $ this -> columns ) ; $ tableheaders = $ this -> headers ; $ items = $ this -> feedbackstructure -> get_items ( true ) ; if ( ! $ this -> is_downloading ( ) && ! $ this -> buildforexternal ) { // In preview mode do not show all columns or the page becomes unreadable. // The information message will be displayed to the teacher that the rest of the data can be viewed when downloading. $ items = array_slice ( $ items , 0 , self :: PREVIEWCOLUMNSLIMIT , true ) ; } $ columnscount = 0 ; $ this -> hasmorecolumns = max ( 0 , count ( $ items ) - self :: TABLEJOINLIMIT ) ; // Add feedback response values. foreach ( $ items as $ nr => $ item ) { if ( $ columnscount ++ < self :: TABLEJOINLIMIT ) { // Mysql has a limit on the number of tables in the join, so we only add limited number of columns here, // the rest will be added in {@link self::build_table()} and {@link self::build_table_chunk()} functions. $ this -> sql -> fields .= ", v{$nr}.value AS val{$nr}" ; $ this -> sql -> from .= " LEFT OUTER JOIN {feedback_value} v{$nr} " . "ON v{$nr}.completed = c.id AND v{$nr}.item = :itemid{$nr}" ; $ this -> sql -> params [ "itemid{$nr}" ] = $ item -> id ; } $ tablecolumns [ ] = "val{$nr}" ; $ itemobj = feedback_get_item_class ( $ item -> typ ) ; $ tableheaders [ ] = $ itemobj -> get_display_name ( $ item ) ; } // Add 'Delete entry' column. if ( ! $ this -> is_downloading ( ) && has_capability ( 'mod/feedback:deletesubmissions' , $ this -> get_context ( ) ) ) { $ tablecolumns [ ] = 'deleteentry' ; $ tableheaders [ ] = '' ; } $ this -> define_columns ( $ tablecolumns ) ; $ this -> define_headers ( $ tableheaders ) ; }
Adds common values to the table that do not change the number or order of entries and
are only needed when outputting or downloading data.
Adds common values to the table that do not change the number or order of entries and are only needed when outputting or downloading data .