From 8c9a1964091672e16eeebe7d3d46f9f61349f8ce Mon Sep 17 00:00:00 2001 From: Juan Leyva Date: Thu, 26 Apr 2018 12:21:22 +0200 Subject: [PATCH] MDL-61521 course: Add missing text formatting for category name --- course/externallib.php | 15 ++++++++++++--- course/tests/externallib_test.php | 3 ++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/course/externallib.php b/course/externallib.php index 6b00cccea27..1f1cb78c372 100644 --- a/course/externallib.php +++ b/course/externallib.php @@ -1718,7 +1718,7 @@ class core_course_external extends external_api { $categoryinfo = array(); $categoryinfo['id'] = $category->id; - $categoryinfo['name'] = $category->name; + $categoryinfo['name'] = external_format_string($category->name, $context); list($categoryinfo['description'], $categoryinfo['descriptionformat']) = external_format_text($category->description, $category->descriptionformat, $context->id, 'coursecat', 'description', null); @@ -1870,8 +1870,12 @@ class core_course_external extends external_api { external_validate_format($category['descriptionformat']); $newcategory = coursecat::create($category); + $context = context_coursecat::instance($newcategory->id); - $createdcategories[] = array('id' => $newcategory->id, 'name' => $newcategory->name); + $createdcategories[] = array( + 'id' => $newcategory->id, + 'name' => external_format_string($newcategory->name, $context), + ); } $transaction->allow_commit(); @@ -2275,6 +2279,11 @@ class core_course_external extends external_api { list($summary, $summaryformat) = external_format_text($course->summary, $course->summaryformat, $coursecontext->id, 'course', 'summary', null); + $categoryname = ''; + if (!empty($category)) { + $categoryname = external_format_string($category->name, $category->get_context()); + } + $displayname = get_course_display_name_for_list($course); $coursereturns = array(); $coursereturns['id'] = $course->id; @@ -2282,7 +2291,7 @@ class core_course_external extends external_api { $coursereturns['displayname'] = external_format_string($displayname, $coursecontext->id); $coursereturns['shortname'] = external_format_string($course->shortname, $coursecontext->id); $coursereturns['categoryid'] = $course->category; - $coursereturns['categoryname'] = $category == null ? '' : $category->name; + $coursereturns['categoryname'] = $categoryname; $coursereturns['summary'] = $summary; $coursereturns['summaryformat'] = $summaryformat; $coursereturns['summaryfiles'] = external_util::get_area_files($coursecontext->id, 'course', 'summary', false, false); diff --git a/course/tests/externallib_test.php b/course/tests/externallib_test.php index 49636b4e05b..fdd038024e3 100644 --- a/course/tests/externallib_test.php +++ b/course/tests/externallib_test.php @@ -2043,7 +2043,7 @@ class core_course_externallib_testcase extends externallib_advanced_testcase { global $DB; $this->resetAfterTest(true); - $category1 = self::getDataGenerator()->create_category(); + $category1 = self::getDataGenerator()->create_category(array('name' => 'Cat 1')); $category2 = self::getDataGenerator()->create_category(array('parent' => $category1->id)); $course1 = self::getDataGenerator()->create_course( array('category' => $category1->id, 'shortname' => 'c1', 'format' => 'topics')); @@ -2099,6 +2099,7 @@ class core_course_externallib_testcase extends externallib_advanced_testcase { $result = external_api::clean_returnvalue(core_course_external::get_courses_by_field_returns(), $result); $this->assertCount(1, $result['courses']); $this->assertEquals($course1->id, $result['courses'][0]['id']); + $this->assertEquals('Cat 1', $result['courses'][0]['categoryname']); $result = core_course_external::get_courses_by_field('shortname', 'c1'); $result = external_api::clean_returnvalue(core_course_external::get_courses_by_field_returns(), $result);