MDL-57678 core_course: Deprecate make_categories_options()
authorJun Pataleta <jun@moodle.com>
Tue, 7 Jul 2020 09:11:43 +0000 (17:11 +0800)
committerJun Pataleta <jun@moodle.com>
Wed, 15 Jul 2020 10:25:57 +0000 (18:25 +0800)
Padding nested course categories by space to make them render in a tree
structure does not really make a lot of sense as they are already being
rendered as full paths. It's simpler to show them without the
indentation.
Given this, there's not much point keeping make_categories_options().
So it's better to deprecate this function and call
core_course_category::make_categories_list() directly instead.

course/classes/category.php
course/lib.php
course/upgrade.txt
lib/deprecatedlib.php

index cbe6878..abe5d56 100644 (file)
@@ -2592,8 +2592,6 @@ class core_course_category implements renderable, cacheable_object, IteratorAggr
      * moving categories, where you do not want to allow people to move a category
      * to be the child of itself.
      *
      * moving categories, where you do not want to allow people to move a category
      * to be the child of itself.
      *
-     * See also {@link make_categories_options()}
-     *
      * @param string/array $requiredcapability if given, only categories where the current
      *      user has this capability will be returned. Can also be an array of capabilities,
      *      in which case they are all required.
      * @param string/array $requiredcapability if given, only categories where the current
      *      user has this capability will be returned. Can also be an array of capabilities,
      *      in which case they are all required.
index 98703cc..7408941 100644 (file)
@@ -636,23 +636,6 @@ function get_category_or_system_context($categoryid) {
     }
 }
 
     }
 }
 
-/**
- * Returns full course categories trees to be used in html_writer::select()
- *
- * Calls {@link core_course_category::make_categories_list()} to build the tree and
- * adds whitespace to denote nesting
- *
- * @return array array mapping course category id to the display name
- */
-function make_categories_options() {
-    $cats = core_course_category::make_categories_list('', 0, ' / ');
-    foreach ($cats as $key => $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;
-}
-
 /**
  * Print the buttons relating to course requests.
  *
 /**
  * Print the buttons relating to course requests.
  *
index 45dc3a1..16e84d3 100644 (file)
@@ -1,6 +1,10 @@
 This files describes API changes in /course/*,
 information provided here is intended especially for developers.
 
 This files describes API changes in /course/*,
 information provided here is intended especially for developers.
 
+=== 4.0 ===
+
+* The function make_categories_options() has now been deprecated. Please use \core_course_category::make_categories_list() instead.
+
 === 3.9 ===
 
 * The function get_module_metadata is now deprecated. Please use \core_course\local\service\content_item_service instead.
 === 3.9 ===
 
 * The function get_module_metadata is now deprecated. Please use \core_course\local\service\content_item_service instead.
index c28996f..48661cb 100644 (file)
@@ -3351,3 +3351,19 @@ function user_get_participants($courseid, $groupid = 0, $accesssince, $roleid, $
 
     return $DB->get_recordset_sql("$select $from $where $sort", $params, $limitfrom, $limitnum);
 }
 
     return $DB->get_recordset_sql("$select $from $where $sort", $params, $limitfrom, $limitnum);
 }
+
+/**
+ * Returns the list of full course categories to be used in html_writer::select()
+ *
+ * Calls {@see core_course_category::make_categories_list()} to build the list.
+ *
+ * @deprecated since Moodle 4.0
+ * @todo This will be finally removed for Moodle 4.4 as part of MDL-69124.
+ * @return array array mapping course category id to the display name
+ */
+function make_categories_options() {
+    $deprecatedtext = __FUNCTION__ . '() is deprecated. Please use \core_course_category::make_categories_list() instead.';
+    debugging($deprecatedtext, DEBUG_DEVELOPER);
+
+    return core_course_category::make_categories_list('', 0, ' / ');
+}