Moodle PHP Documentation 4.2
Moodle 4.2.8 (Build: 20240610) (2d41ac46f45)
quiz_overview_table Class Reference
Inheritance diagram for quiz_overview_table:
mod_quiz\local\reports\attempts_report_table table_sql flexible_table

Public Member Functions

 __construct ($quiz, $context, $qmsubselect, quiz_overview_options $options, core\dml\sql_join $groupstudentsjoins, core\dml\sql_join $studentsjoins, $questions, $reporturl)
 Constructor.
 
 add_data ($row, $classname='')
 This method actually directly echoes the row passed to it now or adds it to the download.
 
 add_data_keyed ($rowwithkeys, $classname='')
 Add a row of data to the table.
 
 add_separator ()
 Add a seperator line to table.
 
 base_sql (\core\dml\sql_join $allowedstudentsjoins)
 Contruct all the parts of the main database query.
 
 build_table ()
 Build the table from the fetched data.
 
 checkbox_col_header (string $columnname)
 Generates the contents for the checkbox column header.
 
 close_recordset ()
 Closes recordset (for use after building the table).
 
 col_checkbox ($attempt)
 Generate the display of the checkbox column.
 
 col_duration ($attempt)
 Generate the display of the time taken column.
 
 col_feedbacktext ($attempt)
 Generate the display of the feedback column.
 
 col_fullname ($attempt)
 Generate the display of the user's full name column.
 
 col_picture ($attempt)
 Generate the display of the user's picture column.
 
 col_regraded ($attempt)
 
 col_state ($attempt)
 Generate the display of the attempt state column.
 
 col_sumgrades ($attempt)
 
 col_timefinish ($attempt)
 Generate the display of the finish time column.
 
 col_timestart ($attempt)
 Generate the display of the start time column.
 
 collapsible ($bool)
 Sets the is_collapsible variable to the given boolean.
 
 column_class ($column, $classname)
 Sets the given $column index to the given $classname in $this->column_class.
 
 column_style ($column, $property, $value)
 Sets the given $column index and $property index to the given $value in $this->column_style.
 
 column_style_all ($property, $value)
 Sets all columns' $propertys to the given $value in $this->column_style.
 
 column_suppress ($column)
 What this method does is set the column so that if the same data appears in consecutive rows, then it is not repeated.
 
 compute_average_row ($label, core\dml\sql_join $usersjoins)
 Calculate the average overall and question scores for a set of attempts at the quiz.
 
 define_baseurl ($url)
 Sets $this->baseurl.
 
 define_columns ($columns)
 
 define_header_column (string $column)
 Mark a specific column as being a table header using the column name defined in define_columns.
 
 define_headers ($headers)
 
 define_help_for_headers ($helpicons)
 Defines a help icon for the header.
 
 download_buttons ()
 Get the html for the download buttons.
 
 export_class_instance ($exportclass=null)
 Get, and optionally set, the export class.
 
 finish_html ()
 This function is not part of the public api.
 
 finish_output ($closeexportclassdoc=true)
 You should call this to finish outputting the table data after adding data to the table with add_data or add_data_keyed.
 
 format_and_add_array_of_rows ($rowstoadd, $finish=true)
 Add a number of rows to the table at once.
 
 format_row ($row)
 Call appropriate methods on this table class to perform any processing on values before displaying in table.
 
 format_text ($text, $format=FORMAT_MOODLE, $options=NULL, $courseid=NULL)
 Used from col_* functions when text is to be displayed.
 
 get_context ()
 Get the context for the table.
 
 get_default_per_page ()
 Get the default per page.
 
 get_filterset ()
 Get the currently defined filterset.
 
 get_initial_first ()
 This function is not part of the public api.
 
 get_initial_last ()
 This function is not part of the public api.
 
 get_page_size ()
 
 get_page_start ()
 
 get_row_cells_html (string $rowid, array $row, ?array $suppresslastrow)
 Generate html code for the row cells.
 
 get_row_class ($attempt)
 Get any extra classes names to add to this row in the HTML.
 
 get_row_from_keyed ($rowwithkeys)
 This function is not part of the public api.
 
 get_row_html ($row, $classname='')
 Generate html code for the passed row.
 
 get_sort_columns ()
 Get the columns to sort by, in the form required by construct_order_by().
 
 get_sql_sort ()
 
 get_sql_where ()
 
 guess_base_url ()
 Attempt to guess the base URL.
 
 initialbars ($bool)
 Sets the use_initials variable to the given boolean.
 
 is_downloadable ($downloadable=null)
 Probably don't need to call this directly.
 
 is_downloading ($download=null, $filename='', $sheettitle='')
 Call this to pass the download type.
 
 is_persistent ($persistent=null)
 Call with boolean true to store table layout changes in the user_preferences table.
 
 is_sortable ($column=null)
 Is the column sortable?
 
 make_review_link ($data, $attempt, $slot)
 Make a link to review an individual question in a popup window.
 
 make_styles_string ($styles)
 This function is not part of the public api.
 
 mark_table_to_reset ()
 Mark the table preferences to be reset.
 
 no_sorting ($column)
 Do not sort using this column.
 
 other_cols ($colname, $attempt)
 
 out ($pagesize, $useinitialsbar, $downloadhelpbutton='')
 Convenience method to call a number of methods for you to display the table.
 
 pageable ($bool)
 Sets the use_pages variable to the given boolean.
 
 pagesize ($perpage, $total)
 Sets the pagesize variable to the given integer, the totalrows variable to the given integer, and the use_pages variable to true.
 
 print_headers ()
 This function is not part of the public api.
 
 print_html ()
 This method is deprecated although the old api is still supported.
 
 print_initials_bar ()
 This function is not part of the public api.
 
 print_nothing_to_display ()
 This function is not part of the public api.
 
 print_row ($row, $classname='')
 This function is not part of the public api.
 
 query_db ($pagesize, $useinitialsbar=true)
 Query the db.
 
 render_caption ()
 This function renders a table caption.
 
 set_attribute ($attribute, $value)
 Gives the given $value to the $attribute index of $this->attributes.
 
 set_caption (string $caption, ?array $captionattributes)
 This function set caption for table.
 
 set_columnsattributes (array $attributes)
 Sets the given $attributes to $this->columnsattributes.
 
 set_control_variables ($variables)
 Assigns each given variable in the array to the corresponding index in the request class variable.
 
 set_count_sql ($sql, array $params=NULL)
 This is only needed if you want to use different sql to count rows.
 
 set_default_per_page (int $defaultperpage)
 Set the default per page.
 
 set_filterset (filterset $filterset)
 Set the filterset in the table class.
 
 set_first_initial (string $initial)
 Set the preferred first name initial in an initials bar.
 
 set_hidden_columns (array $columns)
 Set the list of hidden columns.
 
 set_last_initial (string $initial)
 Set the preferred last name initial in an initials bar.
 
 set_page_number (int $pagenumber)
 Set the page number.
 
 set_sortdata (array $sortdata)
 Set the preferred table sorting attributes.
 
 set_sql ($fields, $from, $where, array $params=array())
 Set the sql to query the db.
 
 setup ()
 Must be called after table is defined.
 
 setup_sql_queries ($allowedjoins)
 Set up the SQL queries (count rows, and get data).
 
 show_download_buttons_at ($showat)
 Where to show download buttons.
 
 sortable ($bool, $defaultcolumn=NULL, $defaultorder=SORT_ASC)
 Sets the is_sortable variable to the given boolean, sort_default_column to the given string, and the sort_default_order to the given integer.
 
 start_html ()
 This function is not part of the public api.
 
 start_output ()
 This function is not part of the public api.
 
 text_sorting ($column)
 Use text sorting functions for this column (required for text columns with Oracle).
 
 wrap_html_finish ()
 Hook that can be overridden in child classes to wrap a table in a form for example.
 
 wrap_html_start ()
 Hook that can be overridden in child classes to wrap a table in a form for example.
 

Static Public Member Functions

static construct_order_by ($cols, $textsortcols=array())
 Prepare an an order by clause from the list of columns to be sorted.
 
static get_filterset_class ()
 Get the class used as a filterset.
 
static get_sort_for_table ($uniqueid)
 Get the order by clause from the session or user preferences, for the table with id $uniqueid.
 

Public Attributes

 $attributes = array()
 
 $baseurl = NULL
 
string $caption
 $caption The caption of table
 
array $captionattributes
 $captionattributes The caption attributes of table
 
 $column_class = array()
 
 $column_nosort = array('userpic')
 
 $column_style = array()
 
 $column_suppress = array()
 
 $columns = array()
 
 $countparams = NULL
 
 $countsql = NULL
 
 $currentrow = 0
 
 $currpage = 0
 
string $download = ''
 which download plugin to use.
 
bool $downloadable = false
 whether data is downloadable from table.
 
table_dataformat_export_format $exportclass = null
 
 $headers = array()
 
bool $is_collapsible = true
 Overriding default for this.
 
bool $is_sortable = true
 Overriding default for this.
 
 $maxsortkeys = 2
 
 $pagesize = 30
 
array Traversable $rawdata = NULL
 Data fetched from the db.
 
 $request = array()
 
boolean $setup = false
 Stores if setup has already been called on this flixible table.
 
 $showdownloadbuttonsat = array(TABLE_P_TOP)
 Array of positions in which to display download controls.
 
 $sort_default_column = NULL
 
 $sort_default_order = SORT_ASC
 
object $sql = NULL
 sql for querying db.
 
bool $started_output = false
 Has start output been called yet?
 
 $totalrows = 0
 
 $uniqueid = NULL
 
 $use_initials = false
 
 $use_pages = false
 
 $useridfield = 'userid'
 

Protected Member Functions

 add_average_row ($label, core\dml\sql_join $usersjoins)
 Add an average grade row for a set of users.
 
 add_latest_state_join ($slot)
 Add the information about the latest state of the question with slot $slot to the query.
 
 can_be_reset ()
 Are there some table preferences that can be reset?
 
 format_average ($record, $question=false)
 Format an entry in an average row.
 
 format_average_grade_for_questions ($gradeaverages)
 Helper userd by add_average_row().
 
 get_component ()
 Get dynamic class component.
 
 get_dynamic_table_html_end ()
 Get the dynamic table end wrapper.
 
 get_dynamic_table_html_start ()
 Get the dynamic table start wrapper.
 
 get_handler ()
 Get dynamic class handler.
 
 get_primary_sort_order ()
 Return primary sorting column/order, either the first preferred "sortby" value or defaults defined for the table.
 
 get_qubaids_condition ()
 Get an appropriate qubaid_condition for loading more data about the attempts we are displaying.
 
 get_regraded_questions ()
 Get all the questions in all the attempts being displayed that need regrading.
 
 get_required_latest_state_fields ($slot, $alias)
 Get any fields that might be needed when sorting on date for a particular slot.
 
 get_sort_order ()
 Return sorting attributes values.
 
 icon_for_fraction ($fraction)
 Return an appropriate icon (green tick, red cross, etc.) for a grade.
 
 initialise_table_preferences ()
 Initialise table preferences.
 
 is_flagged ($questionusageid, $slot)
 Work out if a particular question in a particular attempt has been flagged.
 
 is_latest_step_column ($column)
 Is this a column that depends on joining to the latest state information?
 
 is_resetting_preferences ()
 Is the table marked for reset preferences?
 
 load_extra_data ()
 Load any extra data after main query.
 
 load_question_latest_steps (qubaid_condition $qubaids=null)
 Load information about the latest state of selected questions in selected attempts.
 
 print_one_initials_bar ($alpha, $current, $class, $title, $urlvar)
 Helper function, used by print_initials_bar() to output one initial bar.
 
 render_reset_button ()
 Generate the HTML for the table preferences reset button.
 
 requires_extra_data ()
 Does this report require loading any more data after the main query.
 
 requires_latest_steps_loaded ()
 Does this report require the detailed information for each question from the question_attempts_steps table?
 
 save_preferences ($oldprefs)
 Save preferences.
 
 set_hide_show_preferences ()
 Set hide and show preferences.
 
 set_initials_preferences ()
 Fill in the preferences for the initials bar.
 
 set_sorting_preferences ()
 Calculate the preferences for sort order based on user-supplied values and get params.
 
 show_hide_link ($column, $index)
 Generate the HTML for the collapse/uncollapse icon.
 
 slot_fraction ($attempt, $slot)
 Get the mark (out of 1) for the question in a particular slot.
 
 slot_state ($attempt, $slot)
 Get the question attempt state for a particular question in a particular quiz attempt.
 
 sort_icon ($isprimary, $order)
 Generate the HTML for the sort icon.
 
 sort_link ($text, $column, $isprimary, $order)
 Generate the HTML for the sort link.
 
 sort_order_name ($isprimary, $order)
 Generate the correct tool tip for changing the sort order.
 
 submit_buttons ()
 Output any submit buttons required by the $this->includecheckboxes form.
 
 update_sql_after_count ($fields, $from, $where, $params)
 Lets subclasses modify the SQL after the count query has been created and before the full query is.
 

Protected Attributes

bool null $canreopen = null
 used by {
 
context_module $context
 the quiz context.
 
array $displayoptions
 the display options.
 
string $filename
 $filename
 
filterset $filterset = null
 The currently applied filerset This is required for dynamic tables, but can be used by other tables too if desired.
 
core dml sql_join $groupstudentsjoins
 Contains joins, wheres, params to find students in the currently selected group, if applicable.
 
string $headercolumn = null
 A column which should be considered as a header column.
 
array $hiddencolumns
 $hiddencolumns List of hidden columns.
 
string $ifirst
 The manually set first name initial preference.
 
string $ilast
 The manually set last name initial preference.
 
bool $includecheckboxes
 whether to include the column with checkboxes to select each attempt.
 
array $lateststeps = null
 information about the latest step of each question.
 
stdClass $options
 attempts_report_options the options affecting this report.
 
string $qmsubselect
 HTML fragment to select the first/best/last attempt, if appropriate.
 
array $questions
 the questions that comprise this quiz.
 
stdClass $quiz
 the quiz settings for the quiz we are reporting on.
 
array $regradedqs = []
 used to store information about which questoins have been regraded.
 
moodle_url $reporturl
 the URL of this report.
 
bool $resetting
 $resetting Whether the table preferences is resetting.
 
string $sheettitle
 $sheettitle
 
array $sortdata
 The fields to sort.
 
string $strtimeformat
 strftime format.
 
core dml sql_join $studentsjoins
 Contains joins, wheres, params to find the students in the course.
 
string $togglegroup = 'quiz-attempts'
 The toggle group name for the checkboxes in the checkbox column.
 
string[] $userfullnamecolumns = ['fullname']
 Columns that are expected to contain a users fullname.
 

Constructor & Destructor Documentation

◆ __construct()

quiz_overview_table::__construct ( $quiz,
$context,
$qmsubselect,
quiz_overview_options $options,
core\dml\sql_join $groupstudentsjoins,
core\dml\sql_join $studentsjoins,
$questions,
$reporturl )

Constructor.

Parameters
stdClass$quiz
context$context
string$qmsubselect
quiz_overview_options$options
core\dml\sql_join$groupstudentsjoins
core\dml\sql_join$studentsjoins
array$questions
moodle_url$reporturl

Member Function Documentation

◆ add_average_row()

quiz_overview_table::add_average_row ( $label,
core\dml\sql_join $usersjoins )
protected

Add an average grade row for a set of users.

Parameters
string$labelthe title ot use for this row.
core\dml\sql_join$usersjoins(joins, wheres, params) for the users to average over.

◆ add_data()

flexible_table::add_data ( $row,
$classname = '' )
inherited

This method actually directly echoes the row passed to it now or adds it to the download.

If this is the first row and start_output has not already been called this method also calls start_output to open the table or send headers for the downloaded. Can be used as before. print_html now calls finish_html to close table.

Parameters
array$rowa numerically keyed row of data to add to the table.
string$classnameCSS class name to add to this row's tr tag.
Return values
boolsuccess.

◆ add_data_keyed()

flexible_table::add_data_keyed ( $rowwithkeys,
$classname = '' )
inherited

Add a row of data to the table.

This function takes an array or object with column names as keys or property names.

It ignores any elements with keys that are not defined as columns. It puts in empty strings into the row when there is no element in the passed array corresponding to a column in the table. It puts the row elements in the proper order (internally row table data is stored by in arrays with a numerical index corresponding to the column number).

Parameters
object | array$rowwithkeysarray keys or object property names are column names, as defined in call to define_columns.
string$classnameCSS class name to add to this row's tr tag.

◆ add_latest_state_join()

mod_quiz\local\reports\attempts_report_table::add_latest_state_join ( $slot)
protectedinherited

Add the information about the latest state of the question with slot $slot to the query.

The extra information is added as a join to a 'table' with alias qa$slot, with columns that are a union of the columns of the question_attempts and question_attempts_states tables.

Parameters
int$slotthe question to add information for.

◆ base_sql()

mod_quiz\local\reports\attempts_report_table::base_sql ( \core\dml\sql_join $allowedstudentsjoins)
inherited

Contruct all the parts of the main database query.

Parameters
core\dml\sql_join$allowedstudentsjoins(joins, wheres, params) defines allowed users for the report.
Return values
arraywith 4 elements [$fields, $from, $where, $params] that can be used to build the actual database query.

◆ build_table()

quiz_overview_table::build_table ( )

Build the table from the fetched data.

Take the data returned from the db_query and go through all the rows processing each col using either col_{columnname} method or other_cols method or if other_cols returns NULL then put the data straight into the table.

After calling this function, don't forget to call close_recordset.

Reimplemented from table_sql.

◆ can_be_reset()

flexible_table::can_be_reset ( )
protectedinherited

Are there some table preferences that can be reset?

If true, then the "reset table preferences" widget should be displayed.

Return values
bool

◆ checkbox_col_header()

mod_quiz\local\reports\attempts_report_table::checkbox_col_header ( string $columnname)
inherited

Generates the contents for the checkbox column header.

It returns the HTML for a master core\output\checkbox_toggleall component that selects/deselects all quiz attempts.

Parameters
string$columnnameThe name of the checkbox column.
Return values
string

◆ col_checkbox()

mod_quiz\local\reports\attempts_report_table::col_checkbox ( $attempt)
inherited

Generate the display of the checkbox column.

Parameters
stdClass$attemptthe table row being output.
Return values
stringHTML content to go inside the td.

Reimplemented in quiz_first_or_all_responses_table.

◆ col_duration()

mod_quiz\local\reports\attempts_report_table::col_duration ( $attempt)
inherited

Generate the display of the time taken column.

Parameters
stdClass$attemptthe table row being output.
Return values
stringHTML content to go inside the td.

◆ col_feedbacktext()

mod_quiz\local\reports\attempts_report_table::col_feedbacktext ( $attempt)
inherited

Generate the display of the feedback column.

Parameters
stdClass$attemptthe table row being output.
Return values
stringHTML content to go inside the td.

◆ col_fullname()

mod_quiz\local\reports\attempts_report_table::col_fullname ( $attempt)
inherited

Generate the display of the user's full name column.

Parameters
stdClass$attemptthe table row being output.
Return values
stringHTML content to go inside the td.

Reimplemented from flexible_table.

◆ col_picture()

mod_quiz\local\reports\attempts_report_table::col_picture ( $attempt)
inherited

Generate the display of the user's picture column.

Parameters
stdClass$attemptthe table row being output.
Return values
stringHTML content to go inside the td.

◆ col_state()

mod_quiz\local\reports\attempts_report_table::col_state ( $attempt)
inherited

Generate the display of the attempt state column.

Parameters
stdClass$attemptthe table row being output.
Return values
stringHTML content to go inside the td.

Reimplemented in quiz_first_or_all_responses_table.

◆ col_timefinish()

mod_quiz\local\reports\attempts_report_table::col_timefinish ( $attempt)
inherited

Generate the display of the finish time column.

Parameters
stdClass$attemptthe table row being output.
Return values
stringHTML content to go inside the td.

◆ col_timestart()

mod_quiz\local\reports\attempts_report_table::col_timestart ( $attempt)
inherited

Generate the display of the start time column.

Parameters
stdClass$attemptthe table row being output.
Return values
stringHTML content to go inside the td.

◆ collapsible()

flexible_table::collapsible ( $bool)
inherited

Sets the is_collapsible variable to the given boolean.

Parameters
bool$bool
Return values
void

◆ column_class()

flexible_table::column_class ( $column,
$classname )
inherited

Sets the given $column index to the given $classname in $this->column_class.

Parameters
int$column
string$classname
Return values
void

◆ column_style()

flexible_table::column_style ( $column,
$property,
$value )
inherited

Sets the given $column index and $property index to the given $value in $this->column_style.

Parameters
int$column
string$property
mixed$value
Return values
void

◆ column_style_all()

flexible_table::column_style_all ( $property,
$value )
inherited

Sets all columns' $propertys to the given $value in $this->column_style.

Parameters
int$property
string$value
Return values
void

◆ column_suppress()

flexible_table::column_suppress ( $column)
inherited

What this method does is set the column so that if the same data appears in consecutive rows, then it is not repeated.

For example, in the quiz overview report, the fullname column is set to be suppressed, so that when one student has made multiple attempts, their name is only printed in the row for their first attempt.

Parameters
int$columnthe index of a column.

◆ compute_average_row()

quiz_overview_table::compute_average_row ( $label,
core\dml\sql_join $usersjoins )

Calculate the average overall and question scores for a set of attempts at the quiz.

Parameters
string$labelthe title ot use for this row.
core\dml\sql_join$usersjoinsto indicate a set of users.
Return values
arrayof table cells that make up the average row.

◆ construct_order_by()

static flexible_table::construct_order_by ( $cols,
$textsortcols = array() )
staticinherited

Prepare an an order by clause from the list of columns to be sorted.

Parameters
array$colscolumn name => SORT_ASC or SORT_DESC
Return values
stringSQL fragment that can be used in an ORDER BY clause.

◆ define_baseurl()

flexible_table::define_baseurl ( $url)
inherited

Sets $this->baseurl.

Parameters
moodle_url | string$urlthe url with params needed to call up this page

◆ define_columns()

flexible_table::define_columns ( $columns)
inherited
Parameters
array$columnsan array of identifying names for columns. If columns are sorted then column names must correspond to a field in sql.

Reimplemented in mod_feedback_responses_table.

◆ define_header_column()

flexible_table::define_header_column ( string $column)
inherited

Mark a specific column as being a table header using the column name defined in define_columns.

Note: Only one column can be a header, and it will be rendered using a th tag.

Parameters
string$column

◆ define_headers()

flexible_table::define_headers ( $headers)
inherited
Parameters
array$headersnumerical keyed array of displayed string titles for each column.

◆ define_help_for_headers()

flexible_table::define_help_for_headers ( $helpicons)
inherited

Defines a help icon for the header.

Always use this function if you need to create header with sorting and help icon.

Parameters
renderable[]$helpiconsAn array of renderable objects to be used as help icons

◆ download_buttons()

flexible_table::download_buttons ( )
inherited

◆ export_class_instance()

flexible_table::export_class_instance ( $exportclass = null)
inherited

Get, and optionally set, the export class.

Parameters
table_dataformat_export_format$exportclass(optional) if passed, set the table to use this export class.
Return values
table_dataformat_export_formatthe export class in use (after any set).

◆ format_and_add_array_of_rows()

flexible_table::format_and_add_array_of_rows ( $rowstoadd,
$finish = true )
inherited

Add a number of rows to the table at once.

And optionally finish output after they have been added.

Parameters
(object|array|null)[]$rowstoadd Array of rows to add to table, a null value in array adds a separator row. Or a object or array is added to table. We expect properties for the row array as would be passed to add_data_keyed.
bool$finish

◆ format_average()

quiz_overview_table::format_average ( $record,
$question = false )
protected

Format an entry in an average row.

Parameters
stdClass$recordwith fields grade and numaveraged.
bool$questiontrue if this is a question score, false if it is an overall score.
Return values
stringHTML fragment for an average score (with number of things included in the average).

◆ format_average_grade_for_questions()

quiz_overview_table::format_average_grade_for_questions ( $gradeaverages)
protected

Helper userd by add_average_row().

Parameters
array$gradeaveragesthe raw grades.
Return values
arraythe (partial) row of data.

◆ format_row()

flexible_table::format_row ( $row)
inherited

Call appropriate methods on this table class to perform any processing on values before displaying in table.

Takes raw data from the database and process it into human readable format, perhaps also adding html linking when displaying table as html, adding a div wrap, etc.

See for example col_fullname below which will be called for a column whose name is 'fullname'.

Parameters
array | object$rowrow of data from db used to make one row of the table.
Return values
arrayone row for the table, added using add_data_keyed method.

Reimplemented in assign_grading_table, core_reportbuilder\table\custom_report_table, core_reportbuilder\table\system_report_table, and tool_policy\acceptances_table.

◆ format_text()

flexible_table::format_text ( $text,
$format = FORMAT_MOODLE,
$options = NULL,
$courseid = NULL )
inherited

Used from col_* functions when text is to be displayed.

Does the right thing - either converts text to html or strips any html tags depending on if we are downloading and what is the download type. Params are the same as format_text function in weblib.php but some default options are changed.

◆ get_component()

flexible_table::get_component ( )
protectedinherited

Get dynamic class component.

Return values
string

◆ get_context()

flexible_table::get_context ( )
inherited

Get the context for the table.

Note: This function must be overridden by dynamic tables to ensure that the context is correctly determined from the filterset parameters.

Return values
context

Reimplemented in core_admin\table\plugin_management_table, core_reportbuilder\table\base_report_table, core_user\table\participants, and mod_feedback_responses_table.

◆ get_default_per_page()

flexible_table::get_default_per_page ( )
inherited

Get the default per page.

Return values
int

Reimplemented in core_reportbuilder\table\custom_report_table_view.

◆ get_dynamic_table_html_end()

flexible_table::get_dynamic_table_html_end ( )
protectedinherited

Get the dynamic table end wrapper.

If this is not a dynamic table, then an empty string is returned making this safe to blindly call.

Return values
string

Reimplemented in core_admin\table\plugin_management_table.

◆ get_dynamic_table_html_start()

flexible_table::get_dynamic_table_html_start ( )
protectedinherited

Get the dynamic table start wrapper.

If this is not a dynamic table, then an empty string is returned making this safe to blindly call.

Return values
string

◆ get_filterset()

flexible_table::get_filterset ( )
inherited

Get the currently defined filterset.

Return values
filterset

◆ get_filterset_class()

static flexible_table::get_filterset_class ( )
staticinherited

Get the class used as a filterset.

Return values
string

Reimplemented in core_admin\table\plugin_management_table.

◆ get_handler()

flexible_table::get_handler ( )
protectedinherited

Get dynamic class handler.

Return values
string

◆ get_initial_first()

flexible_table::get_initial_first ( )
inherited

This function is not part of the public api.

Return values
stringinitial of first name we are currently filtering by

◆ get_initial_last()

flexible_table::get_initial_last ( )
inherited

This function is not part of the public api.

Return values
stringinitial of last name we are currently filtering by

◆ get_page_size()

flexible_table::get_page_size ( )
inherited
Return values
intthe pagesize for LIMIT clause of SQL

◆ get_page_start()

flexible_table::get_page_start ( )
inherited
Return values
intthe offset for LIMIT clause of SQL

◆ get_primary_sort_order()

flexible_table::get_primary_sort_order ( )
protectedinherited

Return primary sorting column/order, either the first preferred "sortby" value or defaults defined for the table.

Return values
array

◆ get_qubaids_condition()

mod_quiz\local\reports\attempts_report_table::get_qubaids_condition ( )
protectedinherited

Get an appropriate qubaid_condition for loading more data about the attempts we are displaying.

Return values
qubaid_condition

◆ get_regraded_questions()

quiz_overview_table::get_regraded_questions ( )
protected

Get all the questions in all the attempts being displayed that need regrading.

Return values
arrayA two dimensional array $questionusageid => $slot => $regradeinfo.

◆ get_required_latest_state_fields()

quiz_overview_table::get_required_latest_state_fields ( $slot,
$alias )
protected

Get any fields that might be needed when sorting on date for a particular slot.

Note: these values are only used for sorting. The values displayed are taken from $this->lateststeps loaded in load_extra_data().

Parameters
int$slotthe slot for the column we want.
string$aliasthe table alias for latest state information relating to that slot.
Return values
stringdefinitions of extra fields to add to the SELECT list of the query.

Reimplemented from mod_quiz\local\reports\attempts_report_table.

◆ get_row_cells_html()

flexible_table::get_row_cells_html ( string $rowid,
array $row,
?array $suppresslastrow )
inherited

Generate html code for the row cells.

Parameters
string$rowid
array$row
array | null$suppresslastrow
Return values
string

Reimplemented in core_reportbuilder\table\custom_report_table.

◆ get_row_class()

mod_quiz\local\reports\attempts_report_table::get_row_class ( $row)
inherited

Get any extra classes names to add to this row in the HTML.

Parameters
$rowarray the data for this row.
Return values
stringadded to the class="" attribute of the tr.

Reimplemented from table_sql.

Reimplemented in quiz_first_or_all_responses_table.

◆ get_row_html()

flexible_table::get_row_html ( $row,
$classname = '' )
inherited

Generate html code for the passed row.

Parameters
array$rowRow data.
string$classnameclasses to add.
Return values
string\$htmlhtml code for the row passed.

◆ get_sort_columns()

mod_quiz\local\reports\attempts_report_table::get_sort_columns ( )
inherited

Get the columns to sort by, in the form required by construct_order_by().

Return values
arraycolumn name => SORT_... constant.

Reimplemented from flexible_table.

◆ get_sort_for_table()

static flexible_table::get_sort_for_table ( $uniqueid)
staticinherited

Get the order by clause from the session or user preferences, for the table with id $uniqueid.

Parameters
string$uniqueidthe identifier for a table.
Return values
stringSQL fragment that can be used in an ORDER BY clause.

◆ get_sort_order()

flexible_table::get_sort_order ( )
protectedinherited

Return sorting attributes values.

Return values
array

◆ get_sql_sort()

flexible_table::get_sql_sort ( )
inherited
Return values
stringSQL fragment that can be used in an ORDER BY clause.

Reimplemented in core_reportbuilder\table\base_report_table, and gradereport_history\output\tablelog.

◆ get_sql_where()

flexible_table::get_sql_where ( )
inherited
Return values
stringsql to add to where statement.

Reimplemented in core_tag_manage_table, and tool_policy\acceptances_table.

◆ guess_base_url()

◆ icon_for_fraction()

mod_quiz\local\reports\attempts_report_table::icon_for_fraction ( $fraction)
protectedinherited

Return an appropriate icon (green tick, red cross, etc.) for a grade.

Parameters
float$fractiongrade on a scale 0..1.
Return values
stringhtml fragment.

◆ initialbars()

flexible_table::initialbars ( $bool)
inherited

Sets the use_initials variable to the given boolean.

Parameters
bool$bool
Return values
void

◆ is_downloadable()

flexible_table::is_downloadable ( $downloadable = null)
inherited

Probably don't need to call this directly.

Calling is_downloading with a param automatically sets table as downloadable.

Parameters
bool$downloadableoptional param to set whether data from table is downloadable. If ommitted this function can be used to get current state of table.
Return values
boolwhether table data is set to be downloadable.

Reimplemented in core_admin\table\plugin_management_table.

◆ is_downloading()

flexible_table::is_downloading ( $download = null,
$filename = '',
$sheettitle = '' )
inherited

Call this to pass the download type.

Use : $download = optional_param('download', '', PARAM_ALPHA); To get the download type. We assume that if you call this function with params that this table's data is downloadable, so we call is_downloadable for you (even if the param is '', which means no download this time. Also you can call this method with no params to get the current set download type.

Parameters
string | null$downloadtype of dataformat for export.
string$filenamefilename for downloads without file extension.
string$sheettitletitle for downloaded data.
Return values
stringdownload dataformat type.

◆ is_flagged()

mod_quiz\local\reports\attempts_report_table::is_flagged ( $questionusageid,
$slot )
protectedinherited

Work out if a particular question in a particular attempt has been flagged.

Parameters
int$questionusageidused to identify the attempt of interest.
int$slotidentifies which question in the attempt to check.
Return values
booltrue if the question is flagged in the attempt.

Reimplemented in quiz_first_or_all_responses_table.

◆ is_latest_step_column()

quiz_overview_table::is_latest_step_column ( $column)
protected

Is this a column that depends on joining to the latest state information?

If so, return the corresponding slot. If not, return false.

Parameters
string$columna column name
Return values
int|falsefalse if no, else a slot.

Reimplemented from mod_quiz\local\reports\attempts_report_table.

◆ is_persistent()

flexible_table::is_persistent ( $persistent = null)
inherited

Call with boolean true to store table layout changes in the user_preferences table.

Note: user_preferences.value has a maximum length of 1333 characters. Call with no parameter to get current state of table persistence.

Parameters
bool$persistentOptional parameter to set table layout persistence.
Return values
boolWhether or not the table layout preferences will persist.

◆ is_resetting_preferences()

flexible_table::is_resetting_preferences ( )
protectedinherited

Is the table marked for reset preferences?

Return values
boolTrue if the table is marked to reset, false otherwise.

◆ is_sortable()

flexible_table::is_sortable ( $column = null)
inherited

Is the column sortable?

Parameters
stringcolumn name, null means table
Return values
bool

◆ load_extra_data()

mod_quiz\local\reports\attempts_report_table::load_extra_data ( )
protectedinherited

Load any extra data after main query.

At this point you can call {

See also
get_qubaids_condition} to get the condition that limits the query to just the question usages shown in this report page or alternatively for all attempts if downloading a full report.

Reimplemented in quiz_first_or_all_responses_table.

◆ load_question_latest_steps()

mod_quiz\local\reports\attempts_report_table::load_question_latest_steps ( qubaid_condition $qubaids = null)
protectedinherited

Load information about the latest state of selected questions in selected attempts.

The results are returned as a two-dimensional array $qubaid => $slot => $dataobject.

Parameters
qubaid_condition | null$qubaidsused to restrict which usages are included in the query. See {
See also
qubaid_condition}.
Return values
arrayof records. See the SQL in this function to see the fields available.

◆ make_review_link()

mod_quiz\local\reports\attempts_report_table::make_review_link ( $data,
$attempt,
$slot )
inherited

Make a link to review an individual question in a popup window.

Parameters
string$dataHTML fragment. The text to make into the link.
stdClass$attemptdata for the row of the table being output.
int$slotthe number used to identify this question within this usage.

Reimplemented in quiz_first_or_all_responses_table.

◆ make_styles_string()

flexible_table::make_styles_string ( $styles)
inherited

This function is not part of the public api.

Parameters
array$stylesCSS-property => value
Return values
stringvalues suitably to go in a style="" attribute in HTML.

◆ no_sorting()

flexible_table::no_sorting ( $column)
inherited

Do not sort using this column.

Parameters
stringcolumn name

◆ other_cols()

quiz_overview_table::other_cols ( $colname,
$attempt )
Parameters
string$colnamethe name of the column.
stdClass$attemptthe row of data - see the SQL in display() in mod/quiz/report/overview/report.php to see what fields are present, and what they are called.
Return values
stringthe contents of the cell.

Reimplemented from flexible_table.

◆ out()

table_sql::out ( $pagesize,
$useinitialsbar,
$downloadhelpbutton = '' )
inherited

Convenience method to call a number of methods for you to display the table.

Reimplemented in core_reportbuilder\table\custom_report_table, core_user\table\participants, forumreport_summary\summary_table, mod_feedback_responses_table, and report_loglive_table_log_ajax.

◆ pageable()

flexible_table::pageable ( $bool)
inherited

Sets the use_pages variable to the given boolean.

Parameters
bool$bool
Return values
void

◆ pagesize()

flexible_table::pagesize ( $perpage,
$total )
inherited

Sets the pagesize variable to the given integer, the totalrows variable to the given integer, and the use_pages variable to true.

Parameters
int$perpage
int$total
Return values
void

◆ print_headers()

flexible_table::print_headers ( )
inherited

This function is not part of the public api.

Reimplemented in core_reportbuilder\table\custom_report_table, and core_reportbuilder\table\custom_report_table_view.

◆ print_html()

flexible_table::print_html ( )
inherited

This method is deprecated although the old api is still supported.

Deprecated
1.9.2 - Jun 2, 2008

◆ print_nothing_to_display()

◆ print_one_initials_bar()

flexible_table::print_one_initials_bar ( $alpha,
$current,
$class,
$title,
$urlvar )
protectedinherited

Helper function, used by print_initials_bar() to output one initial bar.

Parameters
array$alphaof letters in the alphabet.
string$currentthe currently selected letter.
string$classclass name to add to this initial bar.
string$titlethe name to put in front of this initial bar.
string$urlvarURL parameter name for this initial.
Deprecated
since Moodle 3.3

◆ query_db()

quiz_overview_table::query_db ( $pagesize,
$useinitialsbar = true )

Query the db.

Store results in the table object for use by build_table.

Parameters
int$pagesizesize of page for paginated displayed table.
bool$useinitialsbardo you want to use the initials bar. Bar will only be used if there is a fullname column defined for the table.

Reimplemented from mod_quiz\local\reports\attempts_report_table.

◆ render_caption()

flexible_table::render_caption ( )
inherited

This function renders a table caption.

Return values
string\$outputCaption of table.

◆ render_reset_button()

flexible_table::render_reset_button ( )
protectedinherited

Generate the HTML for the table preferences reset button.

Return values
stringHTML fragment, empty string if no need to reset

◆ requires_extra_data()

mod_quiz\local\reports\attempts_report_table::requires_extra_data ( )
protectedinherited

Does this report require loading any more data after the main query.

Return values
boolshould {
See also
query_db()} call {
load_extra_data}?

Reimplemented in quiz_last_responses_table.

◆ requires_latest_steps_loaded()

quiz_overview_table::requires_latest_steps_loaded ( )
protected

Does this report require the detailed information for each question from the question_attempts_steps table?

Return values
boolshould {
See also
load_extra_data} call {
load_question_latest_steps}?

Reimplemented from mod_quiz\local\reports\attempts_report_table.

◆ save_preferences()

flexible_table::save_preferences ( $oldprefs)
protectedinherited

Save preferences.

Parameters
array$oldprefsOld preferences to compare against.

◆ set_attribute()

flexible_table::set_attribute ( $attribute,
$value )
inherited

Gives the given $value to the $attribute index of $this->attributes.

Parameters
string$attribute
mixed$value
Return values
void

◆ set_caption()

flexible_table::set_caption ( string $caption,
?array $captionattributes )
inherited

This function set caption for table.

Parameters
string$captionCaption of table.
array | null$captionattributesCaption attributes of table.

◆ set_columnsattributes()

flexible_table::set_columnsattributes ( array $attributes)
inherited

Sets the given $attributes to $this->columnsattributes.

Column attributes will be added to every cell in the column.

Parameters
array[]$attributese.g. ['c0_firstname' => ['data-foo' => 'bar']]

◆ set_control_variables()

flexible_table::set_control_variables ( $variables)
inherited

Assigns each given variable in the array to the corresponding index in the request class variable.

Parameters
array$variables
Return values
void

◆ set_count_sql()

table_sql::set_count_sql ( $sql,
array $params = NULL )
inherited

This is only needed if you want to use different sql to count rows.

Used for example when perhaps all db JOINS are not needed when counting records. You don't need to call this function the count_sql will be generated automatically.

We need to count rows returned by the db seperately to the query itself as we need to know how many pages of data we have to display.

◆ set_default_per_page()

flexible_table::set_default_per_page ( int $defaultperpage)
inherited

Set the default per page.

Parameters
int$defaultperpage

◆ set_filterset()

flexible_table::set_filterset ( filterset $filterset)
inherited

Set the filterset in the table class.

The use of filtersets is a requirement for dynamic tables, but can be used by other tables too if desired.

Parameters
filterset$filtersetThe filterset object to get filters and table parameters from

Reimplemented in core_reportbuilder\table\system_report_table, and core_user\table\participants.

◆ set_first_initial()

flexible_table::set_first_initial ( string $initial)
inherited

Set the preferred first name initial in an initials bar.

Parameters
string$initialThe character to set

◆ set_hidden_columns()

flexible_table::set_hidden_columns ( array $columns)
inherited

Set the list of hidden columns.

Parameters
array$columnsThe list of hidden columns.

◆ set_last_initial()

flexible_table::set_last_initial ( string $initial)
inherited

Set the preferred last name initial in an initials bar.

Parameters
string$initialThe character to set

◆ set_page_number()

flexible_table::set_page_number ( int $pagenumber)
inherited

Set the page number.

Parameters
int$pagenumberThe page number.

◆ set_sortdata()

flexible_table::set_sortdata ( array $sortdata)
inherited

Set the preferred table sorting attributes.

Parameters
string$sortbyThe field to sort by.
int$sortorderThe sort order.

◆ set_sql()

table_sql::set_sql ( $fields,
$from,
$where,
array $params = array() )
inherited

Set the sql to query the db.

Query will be : SELECT $fields FROM $from WHERE $where Of course you can use sub-queries, JOINS etc. by putting them in the appropriate clause of the query.

Reimplemented in forumreport_summary\summary_table.

◆ setup()

flexible_table::setup ( )
inherited

Must be called after table is defined.

Use methods above first. Cannot use functions below till after calling this method.

Reimplemented in assign_grading_table, and core_admin\table\activity_management_table.

◆ setup_sql_queries()

mod_quiz\local\reports\attempts_report_table::setup_sql_queries ( $allowedjoins)
inherited

Set up the SQL queries (count rows, and get data).

Parameters
core\dml\sql_join$allowedjoins(joins, wheres, params) defines allowed users for the report.

◆ show_download_buttons_at()

flexible_table::show_download_buttons_at ( $showat)
inherited

Where to show download buttons.

Parameters
array$showatarray of postions in which to show download buttons. Containing TABLE_P_TOP and/or TABLE_P_BOTTOM

◆ show_hide_link()

flexible_table::show_hide_link ( $column,
$index )
protectedinherited

Generate the HTML for the collapse/uncollapse icon.

This is a helper method used by print_headers().

Parameters
string$columnthe column name, index into various names.
int$indexnumerical index of the column.
Return values
stringHTML fragment.

Reimplemented in assign_grading_table, core_tag_manage_table, core_user\table\participants, tool_dataprivacy\output\data_requests_table, and tool_dataprivacy\output\expired_contexts_table.

◆ slot_fraction()

mod_quiz\local\reports\attempts_report_table::slot_fraction ( $attempt,
$slot )
protectedinherited

Get the mark (out of 1) for the question in a particular slot.

Parameters
stdClass$attemptthe row data
int$slotwhich slot to check.
Return values
floatthe score for this question on a scale of 0 - 1.

Reimplemented in quiz_first_or_all_responses_table.

◆ slot_state()

mod_quiz\local\reports\attempts_report_table::slot_state ( $attempt,
$slot )
protectedinherited

Get the question attempt state for a particular question in a particular quiz attempt.

Parameters
stdClass$attemptthe row data.
int$slotindicates which question.
Return values
question_statethe state of that question.

Reimplemented in quiz_first_or_all_responses_table.

◆ sort_icon()

flexible_table::sort_icon ( $isprimary,
$order )
protectedinherited

Generate the HTML for the sort icon.

This is a helper method used by sort_link().

Parameters
bool$isprimarywhether an icon is needed (it is only needed for the primary sort column.)
int$orderSORT_ASC or SORT_DESC
Return values
stringHTML fragment.

◆ sort_link()

flexible_table::sort_link ( $text,
$column,
$isprimary,
$order )
protectedinherited

Generate the HTML for the sort link.

This is a helper method used by print_headers().

Parameters
string$textthe text for the link.
string$columnthe column name, may be a fake column like 'firstname' or a real one.
bool$isprimarywhether the is column is the current primary sort column.
int$orderSORT_ASC or SORT_DESC
Return values
stringHTML fragment.

◆ sort_order_name()

flexible_table::sort_order_name ( $isprimary,
$order )
protectedinherited

Generate the correct tool tip for changing the sort order.

This is a helper method used by sort_link().

Parameters
bool$isprimarywhether the is column is the current primary sort column.
int$orderSORT_ASC or SORT_DESC
Return values
stringthe correct title.

◆ sortable()

flexible_table::sortable ( $bool,
$defaultcolumn = NULL,
$defaultorder = SORT_ASC )
inherited

Sets the is_sortable variable to the given boolean, sort_default_column to the given string, and the sort_default_order to the given integer.

Parameters
bool$bool
string$defaultcolumn
int$defaultorder
Return values
void

◆ start_html()

flexible_table::start_html ( )
inherited

This function is not part of the public api.

Reimplemented in core_reportbuilder\table\base_report_table.

◆ start_output()

flexible_table::start_output ( )
inherited

This function is not part of the public api.

You don't normally need to call this. It is called automatically when needed when you start adding data to the table.

◆ submit_buttons()

quiz_overview_table::submit_buttons ( )
protected

Output any submit buttons required by the $this->includecheckboxes form.

Reimplemented from mod_quiz\local\reports\attempts_report_table.

◆ text_sorting()

flexible_table::text_sorting ( $column)
inherited

Use text sorting functions for this column (required for text columns with Oracle).

Be warned that you cannot use this with column aliases. You can only do this with real columns. See MDL-40481 for an example.

Parameters
stringcolumn name

◆ update_sql_after_count()

quiz_overview_table::update_sql_after_count ( $fields,
$from,
$where,
$params )
protected

Lets subclasses modify the SQL after the count query has been created and before the full query is.

Parameters
string$fieldsSELECT list.
string$fromJOINs part of the SQL.
string$whereWHERE clauses.
array$paramsQuery params.
Return values
arraywith 4 elements ($fields, $from, $where, $params) as from base_sql.

Reimplemented from mod_quiz\local\reports\attempts_report_table.

◆ wrap_html_finish()

mod_quiz\local\reports\attempts_report_table::wrap_html_finish ( )
inherited

Hook that can be overridden in child classes to wrap a table in a form for example.

Called only when there is data to display and not downloading.

Reimplemented from flexible_table.

◆ wrap_html_start()

mod_quiz\local\reports\attempts_report_table::wrap_html_start ( )
inherited

Hook that can be overridden in child classes to wrap a table in a form for example.

Called only when there is data to display and not downloading.

Reimplemented from flexible_table.

Member Data Documentation

◆ $canreopen

bool null mod_quiz\local\reports\attempts_report_table::$canreopen = null
protectedinherited

used by {

See also
col_state()} to cache the has_capability result.

◆ $download

string flexible_table::$download = ''
inherited

which download plugin to use.

Default '' means none - print html table with paging. Property set by is_downloading which typically passes in cleaned data from $

◆ $downloadable

bool flexible_table::$downloadable = false
inherited

whether data is downloadable from table.

Determines whether to display download buttons. Set by method downloadable().

◆ $lateststeps

array mod_quiz\local\reports\attempts_report_table::$lateststeps = null
protectedinherited

information about the latest step of each question.

Loaded by {

See also
load_question_latest_steps()}, if applicable.

◆ $sql

object table_sql::$sql = NULL
inherited

sql for querying db.

Has fields 'fields', 'from', 'where', 'params'.

◆ $userfullnamecolumns

string [] flexible_table::$userfullnamecolumns = ['fullname']
protectedinherited

Columns that are expected to contain a users fullname.



The documentation for this class was generated from the following file: