Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.0.x will end 8 May 2023 (12 months).
  • Bug fixes for security issues in 4.0.x will end 13 November 2023 (18 months).
  • PHP version: minimum PHP 7.3.0 Note: the minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is also supported.

Differences Between: [Versions 310 and 400] [Versions 311 and 400] [Versions 39 and 400] [Versions 400 and 401] [Versions 400 and 402] [Versions 400 and 403]

Functions used to show question editing interface

Copyright: 1999 onwards Martin Dougiamas and others {@link http://moodle.com}
License: http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
File Size: 558 lines (22 kb)
Included or required: 4 times
Referenced: 7 times
Includes or requires: 0 files

Defines 13 functions


Functions that are not part of a class:

get_module_from_cmid($cmid)   X-Ref
No description

get_questions_category(object $category, bool $noparent, bool $recurse = true, bool $export = true,bool $latestversion = false)   X-Ref
Function to read all questions for category into big array

return: array
param: object $category category number
param: bool $noparent if true only questions with NO parent will be selected
param: bool $recurse include subdirectories
param: bool $export set true if this is called by questionbank export
param: bool $latestversion if only the latest versions needed

question_is_only_child_of_top_category_in_context($categoryid)   X-Ref
Checks whether this is the only child of a top category in a context.

return: bool
param: int $categoryid a category id.

question_is_top_category($categoryid)   X-Ref
Checks whether the category is a "Top" category (with no parent).

return: bool
param: int $categoryid a category id.

question_can_delete_cat($todelete)   X-Ref
Ensures that this user is allowed to delete this category.

param: int $todelete a category id.

question_edit_setup($edittab, $baseurl, $requirecmid = false, $unused = null)   X-Ref
Common setup for all pages for editing questions.

return: array $thispageurl, $contexts, $cmid, $cm, $module, $pagevars
param: string $baseurl the name of the script calling this funciton. For examle 'qusetion/edit.php'.
param: string $edittab code for this edit tab
param: bool $requirecmid require cmid? default false
param: bool $unused no longer used, do no pass

question_build_edit_resources($edittab, $baseurl, $params)   X-Ref
Common function for building the generic resources required by the
editing questions pages.

Either a cmid or a course id must be provided as keys in $params or
an exception will be thrown. All other params are optional and will have
sane default applied if not provided.

The acceptable keys for $params are:
[
'cmid' => PARAM_INT,
'courseid' => PARAM_INT,
'qpage' => PARAM_INT,
'cat' => PARAM_SEQUENCE,
'category' => PARAM_SEQUENCE,
'qperpage' => PARAM_INT,
'recurse' => PARAM_INT,
'showhidden' => PARAM_INT,
'qbshowtext' => PARAM_INT,
'cpage' => PARAM_INT,
'recurse' => PARAM_BOOL,
'showhidden' => PARAM_BOOL,
'qbshowtext' => PARAM_INT,
'qtagids' => [PARAM_INT], (array of integers)
'qbs1' => PARAM_TEXT,
'qbs2' => PARAM_TEXT,
'qbs3' => PARAM_TEXT,
... and more qbs keys up to core_question\local\bank\view::MAX_SORTS ...
];

return: array $thispageurl, $contexts, $cmid, $cm, $module, $pagevars
param: string $edittab Code for this edit tab
param: string $baseurl The name of the script calling this funciton. For examle 'qusetion/edit.php'.
param: array $params The provided parameters to construct the resources with.

question_get_category_id_from_pagevars(array $pagevars)   X-Ref
Get the category id from $pagevars.

return: int the category id.
param: array $pagevars from {@link question_edit_setup()}.

question_get_display_preference($param, $default, $type, $thispageurl)   X-Ref
Get a particular question preference that is also stored as a user preference.
If the the value is given in the GET/POST request, then that value is used,
and the user preference is updated to that value. Otherwise, the last set
value of the user preference is used, or if it has never been set the default
passed to this function.

return: mixed the parameter value to use.
param: string $param the param name. The URL parameter set, and the GET/POST
param: mixed $default The default value to use, if not otherwise set.
param: int $type one of the PARAM_... constants.
param: moodle_url $thispageurl if the value has been explicitly set, we add

question_set_or_get_user_preference($name, $value, $default, $thispageurl)   X-Ref
Get a user preference by name or set the user preference to a given value.

If $value is null then the function will only attempt to retrieve the
user preference requested by $name. If no user preference is found then the
$default value will be returned. In this case the user preferences are not
modified and nor are the params on $thispageurl.

If $value is anything other than null then the function will set the user
preference $name to the provided $value and will also set it as a param
on $thispageurl.

return: mixed the parameter value to use.
param: string $name The user_preference name is 'question_bank_' . $name.
param: mixed $value The preference value.
param: mixed $default The default value to use, if not otherwise set.
param: moodle_url $thispageurl if the value has been explicitly set, we add

require_login_in_context($contextorid = null)   X-Ref
Make sure user is logged in as required in this context.


print_choose_qtype_to_add_form($hiddenparams, array $allowedqtypes = null, $enablejs = true)   X-Ref
Print a form to let the user choose which question type to add.
When the form is submitted, it goes to the question.php script.

param: $hiddenparams hidden parameters to add to the form, in addition to
param: $allowedqtypes optional list of qtypes that are allowed. If given, only

create_new_question_button($categoryid, $params, $caption, $tooltip = '', $disabled = false)   X-Ref
Print a button for creating a new question. This will open question/addquestion.php,
which in turn goes to question/question.php before getting back to $params['returnurl']
(by default the question bank screen).

param: int $categoryid The id of the category that the new question should be added to.
param: array $params Other paramters to add to the URL. You need either $params['cmid'] or
param: string $caption the text to display on the button.
param: string $tooltip a tooltip to add to the button (optional).
param: bool $disabled if true, the button will be disabled.