Index: lib/questionlib.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/questionlib.php,v retrieving revision 1.235 diff -u -r1.235 questionlib.php --- lib/questionlib.php 5 Nov 2010 06:34:02 -0000 1.235 +++ lib/questionlib.php 8 Nov 2010 15:16:09 -0000 @@ -645,7 +645,7 @@ //Cache some strings $strcatdeleted = get_string('unusedcategorydeleted', 'quiz'); $coursecontext = get_context_instance(CONTEXT_COURSE, $course->id); - $categoriescourse = $DB->get_records('question_categories', array('contextid'=>$coursecontext->id), 'parent', 'id, parent, name'); + $categoriescourse = $DB->get_records('question_categories', array('contextid'=>$coursecontext->id), 'parent', 'id, parent, name, contextid'); if ($categoriescourse) { @@ -809,7 +809,7 @@ //Cache some strings $strcatdeleted = get_string('unusedcategorydeleted', 'quiz'); $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id); - if ($categoriesmods = $DB->get_records('question_categories', array('contextid'=>$modcontext->id), 'parent', 'id, parent, name')){ + if ($categoriesmods = $DB->get_records('question_categories', array('contextid'=>$modcontext->id), 'parent', 'id, parent, name, contextid')){ //Sort categories following their tree (parent-child) relationships //this will make the feedback more readable $categoriesmods = sort_categories_by_tree($categoriesmods); @@ -2255,7 +2255,7 @@ $children = array(); $keys = array_keys($categories); - foreach ($keys as $key) { +foreach ($keys as $key) { if (!isset($categories[$key]->processed) && $categories[$key]->parent == $id) { $children[$key] = $categories[$key]; $categories[$key]->processed = true; @@ -2266,7 +2266,8 @@ if ($level == 1) { foreach ($keys as $key) { //If not processed and it's a good candidate to start (because its parent doesn't exist in the course) - if (!isset($categories[$key]->processed) && !$DB->record_exists('question_categories', array('course'=>$categories[$key]->course, 'id'=>$categories[$key]->parent))) { + if (!isset($categories[$key]->processed) && !$DB->record_exists( + 'question_categories', array('contextid'=>$categories[$key]->contextid, 'id'=>$categories[$key]->parent))) { $children[$key] = $categories[$key]; $categories[$key]->processed = true; $children = $children + sort_categories_by_tree($categories, $children[$key]->id, $level+1);