diff --git a/lib/questionlib.php b/lib/questionlib.php index 21ed4f6b10f..82c14c045f6 100644 --- a/lib/questionlib.php +++ b/lib/questionlib.php @@ -2514,9 +2514,12 @@ function question_category_options($contexts, $top = false, $currentcat = 0, $po if ($popupform){ $popupcats = array(); foreach ($categoriesarray as $contextstring => $optgroup){ - $popupcats[] = '--'.$contextstring; - $popupcats = array_merge($popupcats, $optgroup); - $popupcats[] = '--'; + $group = array(); + foreach ($optgroup as $key=>$value) { + $key = str_replace($CFG->wwwroot, '', $key); + $group[$key] = $value; + } + $popupcats[] = array($contextstring=>$group); } return $popupcats; } else { diff --git a/question/editlib.php b/question/editlib.php index c711a9e1b16..dae6616e18f 100644 --- a/question/editlib.php +++ b/question/editlib.php @@ -1175,17 +1175,12 @@ class question_bank_view { $catmenu = question_category_options($contexts, false, 0, true); $editurl = new moodle_url('/question/edit.php', $pageurl->params()); - $select = html_select::make_popup_form($editurl, 'category', $catmenu, 'catmenu', $current); + $select = new single_select($editurl, 'category', $catmenu, $current, null, 'catmenu'); // The js func submit_form_by_id ignores the first element by default when using // the html_select component so we need to unset the selectid param to make it // work in the way we want for this control - $actions = $select->get_actions(); - unset($actions[0]->jsfunctionargs['selectid']); - $select->actions = $actions; - - $select->nothinglabel = false; $select->set_label(get_string('selectacategory', 'question')); - echo $OUTPUT->select($select); + echo $OUTPUT->render($select); echo "\n"; }