Moodle PHP Documentation 4.5
Moodle 4.5dev (Build: 20240606) (d3ae1391abe)
|
This class prints a view of the question bank. More...
Public Member Functions | |
__construct ($contexts, $pageurl, $course, $cm=null, $params=[], $extraparams=[]) | |
Constructor for view. | |
add_searchcondition (condition $searchcondition, ?string $fieldname=null) | |
Add another search control to this view. | |
add_standard_search_conditions () | |
Add standard search conditions. | |
allow_add_questions () | |
Does the current view allow adding new questions? | |
base_url () | |
Returns the base url. | |
copy_question_moodle_url ($questionid) | |
Get the URL for duplicating a question as a moodle url. | |
copy_question_url ($questionid) | |
Get the URL for duplicating a given question. | |
display () | |
Shows the question bank interface. | |
display_bottom_pagination ($pagination, $totalnumber, $perpage, $pageurl) | |
Display bottom pagination bar. | |
display_question_list () | |
Prints the table of questions in a category with interactions. | |
display_questions ($questions, $page=0, $perpage=DEFAULT_QUESTIONS_PER_PAGE) | |
Display the questions. | |
display_questions_table () | |
Display the questions table for the fragment/ajax. | |
display_top_pagnation ($pagination) | |
Display the top pagination bar. | |
edit_question_moodle_url ($questionid) | |
Get the URL for editing a question as a moodle url. | |
edit_question_url ($questionid) | |
Get the URL for editing a question as a HTML-escaped string. | |
get_aggregate_statistic (int $questionid, string $fieldname) | |
Get the aggregated value of a particular statistic for a particular question. | |
get_column_count () | |
Get the count of the columns. | |
get_courseid () | |
Get course id. | |
get_most_specific_context () | |
Get the context we are displaying the question bank for. | |
get_pagevars (?string $field=null) | |
Get fields from the pagevars array. | |
get_primary_sort_order ($sortname) | |
Gets the primary sort order according to the default sort. | |
get_question_actions () | |
Return array of menu actions. | |
get_question_count () | |
Get the number of questions. | |
get_visiblecolumns () | |
Gets visible columns. | |
has_column ($colname) | |
Checks if the column included in the output. | |
is_listing_specific_versions () | |
Is this view showing separate versions of a question? | |
load_questions () | |
Load the questions according to the search conditions. | |
new_sort_url ($sortname, $newsortreverse) | |
Get a URL to redisplay the page with a new sort for the question bank. | |
preview_question_url () | |
print_table_row ($question, $rowcount) | |
Prints the table row from child classes. | |
process_actions () | |
process_actions_needing_ui () | |
set_pagevars (array $pagevars) | |
Set the pagevars property with the provided array. | |
wanted_filters () | |
The filters for the question bank. | |
Public Attributes | |
array | $bulkactions = [] |
$bulkactions to identify the bulk actions for the api. | |
string | $callback = 'question_data' |
$callback name of the callback for the api call via filter js. | |
object cm_info null | $cm |
if we are in a module context, the cm. | |
string | $component = 'core_question' |
$component the component the api is used from. | |
core_question local bank question_edit_contexts | $contexts |
object | $course |
the course we are within. | |
array | $extraparams = [] |
$extraparams extra parameters for the extended apis. | |
string | $returnurl |
url of the new question page. | |
const | MAX_SORTS = 3 |
Maximum number of sorts allowed. | |
Protected Member Functions | |
build_query () | |
Create the SQL query to retrieve the indicated questions, based on core_question\bank\search\condition filters. | |
default_sort () | |
Default sort for question data. | |
determine_required_statistics () | |
Work out the list of all the required statistics fields for this question bank view. | |
display_advanced_search_form ($advancedsearch) | |
Print the "advanced" UI elements for the form to select which questions. | |
display_bottom_controls (\context $catcontext) | |
Display the controls at the bottom of the list of questions. | |
display_options_form ($showquestiontext) | |
Display the form with options for which questions are displayed and how they are displayed. | |
display_question_bank_header () | |
Display the header element for the question bank. | |
display_showtext_checkbox ($showquestiontext) | |
Display the checkbox UI for toggling the display of the question text in the list. | |
end_table () | |
End of the table html. | |
get_column_type ($columnname) | |
Check a column object from its name and get the object for sort. | |
get_component_requirements (array $viewcomponents) | |
Gather query requirements from view component objects. | |
get_current_category ($categoryandcontext) | |
Gets current selected category. | |
get_plugin_controls (\core\context $context, int $categoryid) | |
Output the question bank controls for each plugin. | |
get_question_bank_plugins () | |
Get class for each question bank columns. | |
get_required_fields () | |
Return an array of fields for any data that the core view requires. | |
get_required_joins () | |
Return an array 'table_alias' => 'JOIN clause' to bring in any data that the core view requires. | |
get_row_classes ($question, $rowcount) | |
Gets the classes for the row. | |
heading_column () | |
Specify the column heading. | |
init_bulk_actions () | |
Initialize bulk actions. | |
init_column_manager () | |
Allow qbank plugins to override the column manager. | |
init_columns ($wanted, $heading='') | |
Initializing table columns. | |
init_plugins () | |
Get an array of plugin features objects for all enabled qbank plugins. | |
init_question_actions () | |
Initialise list of menu actions for enabled question bank plugins. | |
init_search_conditions () | |
Initialize search conditions from plugins local_*_get_question_bank_search_conditions() must return an array of core_question\bank\search\condition objects. | |
init_sort () | |
Initialise sorting. | |
load_page_questions () | |
Load the questions we need to display. | |
load_required_statistics (array $questions) | |
Load the aggregate statistics that all the columns require. | |
parse_subsort ($sort) | |
Deal with a sort name of the form columnname, or colname_subsort by breaking it up, validating the bits that are present, and returning them. | |
print_choose_category_message () | |
Print the text if category id not available. | |
print_table ($questions) | |
Prints the actual table with question. | |
print_table_headers () | |
Print table headers from child classes. | |
sort_to_params ($sorts) | |
Sort to parameters. | |
start_table () | |
Start of the table html. | |
wanted_columns () | |
Loads all the available columns. | |
Protected Attributes | |
moodle_url | $baseurl |
base URL for the current page. | |
column_manager_base | $columnmanager |
$columnmanager The column manager, can be overridden by plugins. | |
column_base[] | $corequestionbankcolumns |
these are the 'columns' that are common to the question bank. | |
string | $countsql |
SQL to count the number of questions matching the current search conditions. | |
moodle_url | $editquestionurl |
used as a basis for URLs that edit a question. | |
column_base[] | $extrarows |
these are the 'columns' that are actually displayed as an additional row (e.g. | |
int null | $lastchangedid |
id of the a question to highlight in the list (if present). | |
array | $loadedstatistics = null |
Stores all the average statistics that this question bank view needs. | |
string | $loadsql |
SQL to actually load the question data to display. | |
int | $pagesize = DEFAULT_QUESTIONS_PER_PAGE |
page size to use (when we are not showing all questions). | |
array | $pagevars = [] |
Parameters for the page URL. | |
plugin_features_base[] | $plugins = [] |
$plugins Plugin feature objects for all enabled qbank plugins. | |
question_action_base[] | $questionactions |
these are all the actions that can be displayed in a question's action menu. | |
column_base[] | $requiredcolumns |
these are all the 'columns' that are part of the display. | |
condition[] | $searchconditions = [] |
search conditions. | |
array | $sort |
list of column class names for which columns to sort on. | |
array | $sqlparams |
params used by $countsql and $loadsql (which currently must be the same). | |
int null | $totalcount = null |
Number of questions. | |
column_base[] | $visiblecolumns |
these are the 'columns' that are actually displayed as a column, in order. | |
This class prints a view of the question bank.
including
This class gives a basic view, and provides plenty of hooks where subclasses can override parts of the display.
The list of questions presented as a table is generated by creating a list of core_question\bank\column objects, one for each 'column' to be displayed. These manage
core_question\local\bank\view::__construct | ( | $contexts, | |
$pageurl, | |||
$course, | |||
$cm = null, | |||
$params = [], | |||
$extraparams = [] ) |
Constructor for view.
core_question\local\bank\question_edit_contexts | $contexts | |
moodle_url | $pageurl | |
object | $course | course settings |
null | $cm | (optional) activity settings. |
array | $params | the parameters required to initialize the api. |
array | $extraparams | any extra parameters required by a particular view class. |
Reimplemented in mod_quiz\question\bank\custom_view.
core_question\local\bank\view::add_searchcondition | ( | condition | $searchcondition, |
?string | $fieldname = null ) |
Add another search control to this view.
condition | $searchcondition | the condition to add. |
string | null | $fieldname |
core_question\local\bank\view::add_standard_search_conditions | ( | ) |
Add standard search conditions.
Params must be set into this object before calling this function.
Reimplemented in mod_quiz\question\bank\custom_view.
core_question\local\bank\view::allow_add_questions | ( | ) |
Does the current view allow adding new questions?
bool | True if the view supports adding new questions. |
Reimplemented in qbank_history\question_history_view.
core_question\local\bank\view::base_url | ( | ) |
Returns the base url.
moodle_url |
|
protected |
Create the SQL query to retrieve the indicated questions, based on core_question\bank\search\condition filters.
Reimplemented in mod_quiz\question\bank\custom_view, and qbank_history\question_history_view.
core_question\local\bank\view::copy_question_moodle_url | ( | $questionid | ) |
Get the URL for duplicating a question as a moodle url.
int | $questionid | the question id. |
moodle_url | the URL. |
core_question\local\bank\view::copy_question_url | ( | $questionid | ) |
Get the URL for duplicating a given question.
int | $questionid | the question id. |
string | the URL, HTML-escaped. |
|
protected |
Default sort for question data.
int[] |
Reimplemented in mod_quiz\question\bank\custom_view, and qbank_history\question_history_view.
|
protected |
Work out the list of all the required statistics fields for this question bank view.
This gathers all the required fields from all columns, so they can all be loaded at once.
string[] | the names of all the required fields for this question bank view. |
|
protected |
Print the "advanced" UI elements for the form to select which questions.
Hidden by default.
array | $advancedsearch |
Reimplemented in qbank_history\question_history_view.
|
protected |
Display the controls at the bottom of the list of questions.
context | $catcontext | The context of the category being displayed. |
core_question\local\bank\view::display_bottom_pagination | ( | $pagination, | |
$totalnumber, | |||
$perpage, | |||
$pageurl ) |
Display bottom pagination bar.
string | $pagination | |
int | $totalnumber | |
int | $perpage | |
moodle_url | $pageurl |
|
protected |
|
protected |
Display the header element for the question bank.
Reimplemented in mod_quiz\question\bank\custom_view, and qbank_history\question_history_view.
core_question\local\bank\view::display_questions | ( | $questions, | |
$page = 0, | |||
$perpage = DEFAULT_QUESTIONS_PER_PAGE ) |
Display the questions.
array | $questions |
core_question\local\bank\view::display_questions_table | ( | ) |
Display the questions table for the fragment/ajax.
string | HTML for the question table |
|
protected |
core_question\local\bank\view::display_top_pagnation | ( | $pagination | ) |
core_question\local\bank\view::edit_question_moodle_url | ( | $questionid | ) |
Get the URL for editing a question as a moodle url.
int | $questionid | the question id. |
moodle_url | the URL, HTML-escaped. |
core_question\local\bank\view::edit_question_url | ( | $questionid | ) |
Get the URL for editing a question as a HTML-escaped string.
int | $questionid | the question id. |
string | the URL, HTML-escaped. |
|
protected |
core_question\local\bank\view::get_aggregate_statistic | ( | int | $questionid, |
string | $fieldname ) |
Get the aggregated value of a particular statistic for a particular question.
You can only get values for the questions on the current page of the question bank view, and only if you declared the need for this statistic in the get_required_statistics_fields() method of your question bank column.
int | $questionid | the id of a question |
string | $fieldname | the name of a statistics field, e.g. 'facility'. |
float|null | the average (across all users) of this statistic for this question. Null if the value is not available right now. |
core_question\local\bank\view::get_column_count | ( | ) |
Get the count of the columns.
int | The number of columns in the table. |
|
protected |
Check a column object from its name and get the object for sort.
string | $columnname |
|
protected |
Gather query requirements from view component objects.
This will take the required fields and joins for this view, and combine them with those for all active view components. Fields will be de-duplicated in multiple components require the same field. Joins will be de-duplicated if the alias and join clause match exactly.
coding_exception | If two components attempt to use the same alias for different joins. |
view_component[] | $viewcomponents | List of component objects included in the current view |
array | [$fields, $joins] SQL fields and joins to add to the query. |
core_question\local\bank\view::get_courseid | ( | ) |
Get course id.
mixed |
|
protected |
core_question\local\bank\view::get_most_specific_context | ( | ) |
Get the context we are displaying the question bank for.
context | context object. |
core_question\local\bank\view::get_pagevars | ( | ?string | $field = null | ) |
Get fields from the pagevars array.
If a field is specified, that particlar pagevars field will be returned. Otherwise the entire array will be returned.
If a field is specified but it does not exist, null will be returned.
?string | $field |
mixed |
|
protected |
Output the question bank controls for each plugin.
Controls will be output in the order defined by the array keys returned from {
core\context | $context | The current context, for permissions checks. |
int | $categoryid | The current question category. |
core_question\local\bank\view::get_primary_sort_order | ( | $sortname | ) |
Gets the primary sort order according to the default sort.
string | $sortname | a column or column_subsort name. |
int | the current sort order for this column -1, 0, 1 |
core_question\local\bank\view::get_question_actions | ( | ) |
Return array of menu actions.
question_action_base[] |
|
protected |
Get class for each question bank columns.
array |
Reimplemented in mod_quiz\question\bank\custom_view, and mod_quiz\question\bank\random_question_view.
core_question\local\bank\view::get_question_count | ( | ) |
Get the number of questions.
int |
|
protected |
Return an array of fields for any data that the core view requires.
Use table alias 'q' for the question table, or one of the ones from get_required_joins. Every field requested must specify a table prefix.
string[] | fields required. |
|
protected |
Return an array 'table_alias' => 'JOIN clause' to bring in any data that the core view requires.
string[] | 'table_alias' => 'JOIN clause' |
|
protected |
Gets the classes for the row.
stdClass | $question | |
int | $rowcount |
array |
core_question\local\bank\view::get_visiblecolumns | ( | ) |
Gets visible columns.
array | Visible columns. |
core_question\local\bank\view::has_column | ( | $colname | ) |
Checks if the column included in the output.
string | $colname | a column internal name. |
bool | is this column included in the output? |
|
protected |
Specify the column heading.
string | Column name for the heading |
Reimplemented in mod_quiz\question\bank\custom_view.
|
protected |
Allow qbank plugins to override the column manager.
If multiple qbank plugins define a column manager, this will pick the first one sorted alphabetically.
void |
Reimplemented in mod_quiz\question\bank\custom_view, and qbank_columnsortorder\local\bank\preview_view.
|
protected |
Initializing table columns.
array | $wanted | Collection of column names |
string | $heading | The name of column that is set as heading |
|
protected |
Get an array of plugin features objects for all enabled qbank plugins.
void |
|
protected |
Initialise list of menu actions for enabled question bank plugins.
Menu action objects are stored in $this->menuactions, keyed by class name.
void |
Reimplemented in qbank_history\question_history_view.
|
protected |
Initialize search conditions from plugins local_*_get_question_bank_search_conditions() must return an array of core_question\bank\search\condition objects.
core_question\local\bank\view::is_listing_specific_versions | ( | ) |
Is this view showing separate versions of a question?
bool |
Reimplemented in qbank_history\question_history_view.
|
protected |
Load the questions we need to display.
moodle_recordset | questionid => data about each question. |
core_question\local\bank\view::load_questions | ( | ) |
Load the questions according to the search conditions.
array |
|
protected |
Load the aggregate statistics that all the columns require.
stdClass[] | $questions | the questions that will be displayed indexed by question id. |
core_question\local\bank\view::new_sort_url | ( | $sortname, | |
$newsortreverse ) |
Get a URL to redisplay the page with a new sort for the question bank.
string | $sortname | the column, or column_subsort to sort on. |
bool | $newsortreverse | whether to sort in reverse order. |
string | The new URL. |
|
protected |
Deal with a sort name of the form columnname, or colname_subsort by breaking it up, validating the bits that are present, and returning them.
If there is no subsort, then $subsort is returned as ''.
string | $sort | the sort parameter to process. |
array | [$colname, $subsort]. |
core_question\local\bank\view::preview_question_url | ( | ) |
|
protected |
|
protected |
Prints the actual table with question.
array | $questions |
core_question\local\bank\view::print_table_row | ( | $question, | |
$rowcount ) |
Prints the table row from child classes.
stdClass | $question | |
int | $rowcount |
Reimplemented in qbank_columnsortorder\local\bank\preview_view.
core_question\local\bank\view::process_actions | ( | ) |
core_question\local\bank\view::process_actions_needing_ui | ( | ) |
core_question\local\bank\view::set_pagevars | ( | array | $pagevars | ) |
Set the pagevars property with the provided array.
array | $pagevars |
|
protected |
Sort to parameters.
array | $sorts |
array |
|
protected |
|
protected |
Loads all the available columns.
array |
Reimplemented in qbank_history\question_history_view.
core_question\local\bank\view::wanted_filters | ( | ) |
The filters for the question bank.
Reimplemented in qbank_history\question_history_view.
|
protected |
base URL for the current page.
Used as the basis for making URLs for actions that reload the page.
|
protected |
these are the 'columns' that are actually displayed as an additional row (e.g.
question text), in order. Array keys are the class name.
|
protected |
Stores all the average statistics that this question bank view needs.
This field gets initialised in {
|
protected |
these are all the actions that can be displayed in a question's action menu.
Array keys are the class name.
|
protected |
these are all the 'columns' that are part of the display.
Array keys are the class name.
|
protected |
these are the 'columns' that are actually displayed as a column, in order.
Array keys are the class name.