Moodle APIs 4.3
Moodle 4.3.6 (Build: 20240812)
|
Subclass to customise the view of the question bank for the quiz editing screen. More...
Public Member Functions | |
__construct ($contexts, $pageurl, $course, $cm, $params, $extraparams) | |
Constructor. | |
add_searchcondition (condition $searchcondition, ?string $fieldname=null) | |
Add another search control to this view. | |
add_standard_search_conditions () | |
Add standard search conditions. | |
add_to_quiz_url ($questionid) | |
URL of add to quiz. | |
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_quiz () | |
Return the quiz settings for the quiz this question bank is displayed in. | |
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 ($questiondata) | |
Get the URL to preview a question. | |
print_table_row ($question, $rowcount) | |
Prints the table row from child classes. | |
process_actions () | |
Process actions for the selected action. | |
process_actions_needing_ui () | |
Process actions with ui. | |
render ($pagevars, $tabname) | |
Renders the html question bank (same as display, but returns the result). | |
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 = 'mod_quiz' |
$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. | |
int const | DEFAULT_PAGE_SIZE = 20 |
number of questions per page to show in the add from question bank modal. | |
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. | |
create_new_question_form ($category, $canadd) | |
Override the base implementation in core_question\local\bank\view because we don't want to print new question form in the fragment for the modal. | |
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_bottom_controls (\context $catcontext) | |
display_options_form ($showquestiontext) | |
Display the form with options for which questions are displayed and how they are displayed. | |
display_question_bank_header () | |
Override the base implementation in core_question\local\bank\view because we don't want to print the headers in the fragment for the modal. | |
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_plugin_controls (\core\context $context, int $categoryid) | |
Don't display plugin controls. | |
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 () | |
Just use the base column manager in this view. | |
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. | |
stdClass | $quiz = false |
$quiz the quiz settings. | |
bool | $quizhasattempts = false |
$quizhasattempts whether the quiz this is used by has been attemptd. | |
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. | |
Subclass to customise the view of the question bank for the quiz editing screen.
mod_quiz\question\bank\custom_view::__construct | ( | $contexts, | |
$pageurl, | |||
$course, | |||
$cm, | |||
$params, | |||
$extraparams ) |
Constructor.
core_question\local\bank\question_edit_contexts | $contexts | |
moodle_url | $pageurl | |
stdClass | $course | course settings |
stdClass | $cm | activity settings. |
stdClass | $quiz | quiz settings. |
Reimplemented from core_question\local\bank\view.
|
inherited |
Add another search control to this view.
condition | $searchcondition | the condition to add. |
string | null | $fieldname |
mod_quiz\question\bank\custom_view::add_standard_search_conditions | ( | ) |
Add standard search conditions.
Params must be set into this object before calling this function.
Reimplemented from core_question\local\bank\view.
mod_quiz\question\bank\custom_view::add_to_quiz_url | ( | $questionid | ) |
|
inherited |
Does the current view allow adding new questions?
bool | True if the view supports adding new questions. |
Reimplemented in qbank_history\question_history_view.
|
inherited |
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 from core_question\local\bank\view.
|
inherited |
Get the URL for duplicating a question as a moodle url.
int | $questionid | the question id. |
moodle_url | the URL. |
|
inherited |
Get the URL for duplicating a given question.
int | $questionid | the question id. |
string | the URL, HTML-escaped. |
|
protected |
Override the base implementation in core_question\local\bank\view because we don't want to print new question form in the fragment for the modal.
false | mixed | stdClass | $category | |
bool | $canadd |
|
protected |
Default sort for question data.
int[] |
Reimplemented from core_question\local\bank\view.
|
protectedinherited |
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. |
|
protectedinherited |
Print the "advanced" UI elements for the form to select which questions.
Hidden by default.
array | $advancedsearch |
Reimplemented in qbank_history\question_history_view.
|
protectedinherited |
Display the controls at the bottom of the list of questions.
context | $catcontext | The context of the category being displayed. |
|
inherited |
Display bottom pagination bar.
string | $pagination | |
int | $totalnumber | |
int | $perpage | |
moodle_url | $pageurl |
|
protectedinherited |
Display the form with options for which questions are displayed and how they are displayed.
bool | $showquestiontext | Display the text of the question within the list. |
|
protected |
Override the base implementation in core_question\local\bank\view because we don't want to print the headers in the fragment for the modal.
Reimplemented from core_question\local\bank\view.
|
inherited |
Display the questions.
array | $questions |
|
inherited |
Display the questions table for the fragment/ajax.
string | HTML for the question table |
|
protectedinherited |
Display the checkbox UI for toggling the display of the question text in the list.
bool | $showquestiontext | the current or default value for whether to display the text. |
|
inherited |
|
inherited |
Get the URL for editing a question as a moodle url.
int | $questionid | the question id. |
moodle_url | the URL, HTML-escaped. |
|
inherited |
Get the URL for editing a question as a HTML-escaped string.
int | $questionid | the question id. |
string | the URL, HTML-escaped. |
|
protectedinherited |
|
inherited |
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. |
|
inherited |
Get the count of the columns.
int | The number of columns in the table. |
|
protectedinherited |
Check a column object from its name and get the object for sort.
string | $columnname |
|
protectedinherited |
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. |
|
inherited |
Get course id.
mixed |
|
protectedinherited |
Gets current selected category.
string | $categoryandcontext |
false|mixed|stdClass |
|
inherited |
Get the context we are displaying the question bank for.
context | context object. |
|
inherited |
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 |
|
protectedinherited |
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. |
|
protected |
|
inherited |
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 |
|
inherited |
Return array of menu actions.
question_action_base[] |
|
protected |
Get class for each question bank columns.
array |
Reimplemented from core_question\local\bank\view.
Reimplemented in mod_quiz\question\bank\random_question_view.
|
inherited |
Get the number of questions.
int |
mod_quiz\question\bank\custom_view::get_quiz | ( | ) |
Return the quiz settings for the quiz this question bank is displayed in.
bool|stdClass |
|
protectedinherited |
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. |
|
protectedinherited |
Return an array 'table_alias' => 'JOIN clause' to bring in any data that the core view requires.
string[] | 'table_alias' => 'JOIN clause' |
|
protectedinherited |
Gets the classes for the row.
stdClass | $question | |
int | $rowcount |
array |
|
inherited |
Gets visible columns.
array | Visible columns. |
|
inherited |
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 from core_question\local\bank\view.
|
protected |
Just use the base column manager in this view.
void |
Reimplemented from core_question\local\bank\view.
|
protectedinherited |
Initializing table columns.
array | $wanted | Collection of column names |
string | $heading | The name of column that is set as heading |
|
protectedinherited |
Get an array of plugin features objects for all enabled qbank plugins.
void |
|
protectedinherited |
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.
|
protectedinherited |
Initialize search conditions from plugins local_*_get_question_bank_search_conditions() must return an array of core_question\bank\search\condition objects.
|
inherited |
Is this view showing separate versions of a question?
bool |
Reimplemented in qbank_history\question_history_view.
|
protectedinherited |
Load the questions we need to display.
moodle_recordset | questionid => data about each question. |
|
inherited |
Load the questions according to the search conditions.
array |
|
protectedinherited |
Load the aggregate statistics that all the columns require.
stdClass[] | $questions | the questions that will be displayed indexed by question id. |
|
inherited |
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. |
|
protectedinherited |
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]. |
|
inherited |
Get the URL to preview a question.
stdClass | $questiondata | the data defining the question. |
moodle_url | the URL. |
|
protectedinherited |
Print the text if category id not available.
|
protectedinherited |
Prints the actual table with question.
array | $questions |
|
inherited |
Prints the table row from child classes.
stdClass | $question | |
int | $rowcount |
Reimplemented in qbank_columnsortorder\local\bank\preview_view.
|
inherited |
Process actions for the selected action.
|
inherited |
mod_quiz\question\bank\custom_view::render | ( | $pagevars, | |
$tabname ) |
Renders the html question bank (same as display, but returns the result).
Note that you can only output this rendered result once per page, as it contains IDs which must be unique.
array | $pagevars | |
string | $tabname |
string | HTML code for the form |
|
inherited |
Set the pagevars property with the provided array.
array | $pagevars |
|
protectedinherited |
Sort to parameters.
array | $sorts |
array |
|
protectedinherited |
|
protectedinherited |
Loads all the available columns.
array |
Reimplemented in qbank_history\question_history_view.
|
inherited |
The filters for the question bank.
Reimplemented in qbank_history\question_history_view.
|
protectedinherited |
base URL for the current page.
Used as the basis for making URLs for actions that reload the page.
|
protectedinherited |
these are the 'columns' that are actually displayed as an additional row (e.g.
question text), in order. Array keys are the class name.
|
protectedinherited |
Stores all the average statistics that this question bank view needs.
This field gets initialised in {
|
protectedinherited |
these are all the actions that can be displayed in a question's action menu.
Array keys are the class name.
|
protectedinherited |
these are all the 'columns' that are part of the display.
Array keys are the class name.
|
protectedinherited |
these are the 'columns' that are actually displayed as a column, in order.
Array keys are the class name.