| Línea 64... |
Línea 64... |
| 64 |
$course = get_course($cm->course);
|
64 |
$course = get_course($cm->course);
|
| 65 |
}
|
65 |
}
|
| Línea 66... |
Línea 66... |
| 66 |
|
66 |
|
| Línea -... |
Línea 67... |
| - |
|
67 |
$viewclass = empty($args['view']) ? \core_question\local\bank\view::class : clean_param($args['view'], PARAM_NOTAGS);
|
| - |
|
68 |
|
| - |
|
69 |
// Make sure the class passed through is valid (exists and is view or subclass of view).
|
| - |
|
70 |
if (!class_exists($viewclass) || !is_a($viewclass, \core_question\local\bank\view::class, true)) {
|
| - |
|
71 |
throw new invalid_parameter_exception('view parameter must be a valid view class');
|
| 67 |
$viewclass = empty($args['view']) ? \core_question\local\bank\view::class : clean_param($args['view'], PARAM_NOTAGS);
|
72 |
}
|
| 68 |
|
73 |
|
| 69 |
if (!empty($args['lastchanged'])) {
|
74 |
if (!empty($args['lastchanged'])) {
|
| - |
|
75 |
$thispageurl->param('lastchanged', clean_param($args['lastchanged'], PARAM_INT));
|
| 70 |
$thispageurl->param('lastchanged', clean_param($args['lastchanged'], PARAM_INT));
|
76 |
}
|
| - |
|
77 |
if (!empty($args['view'])) {
|
| 71 |
}
|
78 |
$thispageurl->param('view', clean_param($args['view'], PARAM_NOTAGS));
|
| - |
|
79 |
}
|
| - |
|
80 |
if (!empty($args['extraparams'])) {
|
| 72 |
// This is highly suspicious, but it is the same approach taken in /question/edit.php. See MDL-79281.
|
81 |
$thispageurl->param('extraparams', clean_param($args['extraparams'], PARAM_RAW));
|
| 73 |
$thispageurl->param('deleteall', 1);
|
82 |
}
|
| 74 |
$questionbank = new $viewclass($contexts, $thispageurl, $course, $cm, $pagevars, $extraparams);
|
83 |
$questionbank = new $viewclass($contexts, $thispageurl, $course, $cm, $pagevars, $extraparams);
|
| 75 |
$questionbank->add_standard_search_conditions();
|
84 |
$questionbank->add_standard_search_conditions();
|
| 76 |
ob_start();
|
85 |
ob_start();
|
| 77 |
$questionbank->display_question_list();
|
86 |
$questionbank->display_question_list();
|
| - |
|
87 |
return ob_get_clean();
|
| - |
|
88 |
}
|
| - |
|
89 |
|
| - |
|
90 |
/**
|
| - |
|
91 |
* Render and return a category selector for the categories in a given question bank.
|
| - |
|
92 |
*
|
| - |
|
93 |
* @param array $args ['bankcmid' => Course module ID of the question bank]
|
| - |
|
94 |
* @return string The rendered selector.
|
| - |
|
95 |
*/
|
| - |
|
96 |
function core_question_output_fragment_category_selector(array $args): string {
|
| - |
|
97 |
global $OUTPUT;
|
| - |
|
98 |
$context = \core\context\module::instance($args['bankcmid']);
|
| - |
|
99 |
$selector = new \core_question\output\question_category_selector([$context], autocomplete: true);
|