MDL-41114 Avoid unnecessary retrieving of coursecat from DB
authorMarina Glancy <marina@moodle.com>
Sun, 11 Aug 2013 12:38:16 +0000 (22:38 +1000)
committerMarina Glancy <marina@moodle.com>
Mon, 12 Aug 2013 05:07:46 +0000 (15:07 +1000)
- course category depth can be estimated in make_categories_options() by the number of separators

course/lib.php

index 6092350..ee8019f 100644 (file)
@@ -1236,9 +1236,10 @@ function get_category_or_system_context($categoryid) {
 function make_categories_options() {
     global $CFG;
     require_once($CFG->libdir. '/coursecatlib.php');
-    $cats = coursecat::make_categories_list();
+    $cats = coursecat::make_categories_list('', 0, ' / ');
     foreach ($cats as $key => $value) {
-        $cats[$key] = str_repeat('&nbsp;', coursecat::get($key)->depth - 1). $value;
+        // Prefix the value with the number of spaces equal to category depth (number of separators in the value).
+        $cats[$key] = str_repeat('&nbsp;', substr_count($value, ' / ')). $value;
     }
     return $cats;
 }