diff --git a/lib/coursecatlib.php b/lib/coursecatlib.php index 5cbf71cb27a..d4e30dcb023 100644 --- a/lib/coursecatlib.php +++ b/lib/coursecatlib.php @@ -1998,7 +1998,13 @@ class coursecat implements renderable, cacheable_object, IteratorAggregate { public function hide() { if ($this->hide_raw(0)) { cache_helper::purge_by_event('changesincoursecat'); - add_to_log(SITEID, "category", "hide", "editcategory.php?id=$this->id", $this->id); + + $event = \core\event\course_category_updated::create(array( + 'objectid' => $this->id, + 'context' => $this->get_context() + )); + $event->set_legacy_logdata(array(SITEID, 'category', 'hide', 'editcategory.php?id=' . $this->id, $this->id)); + $event->trigger(); } } @@ -2051,7 +2057,13 @@ class coursecat implements renderable, cacheable_object, IteratorAggregate { public function show() { if ($this->show_raw()) { cache_helper::purge_by_event('changesincoursecat'); - add_to_log(SITEID, "category", "show", "editcategory.php?id=$this->id", $this->id); + + $event = \core\event\course_category_updated::create(array( + 'objectid' => $this->id, + 'context' => $this->get_context() + )); + $event->set_legacy_logdata(array(SITEID, 'category', 'show', 'editcategory.php?id=' . $this->id, $this->id)); + $event->trigger(); } } diff --git a/lib/tests/events_test.php b/lib/tests/events_test.php index 6130bc829e1..ee5797cb64d 100644 --- a/lib/tests/events_test.php +++ b/lib/tests/events_test.php @@ -115,5 +115,29 @@ class core_events_testcase extends advanced_testcase { $this->assertEquals(context_coursecat::instance($childcat->id), $event->get_context()); $expected = array(SITEID, 'category', 'move', 'editcategory.php?id=' . $childcat->id, $childcat->id); $this->assertEventLegacyLogData($expected, $event); + + // Trigger and capture the event for hiding a category. + $sink = $this->redirectEvents(); + $category2->hide(); + $events = $sink->get_events(); + $event = reset($events); + + // Check that the event data is valid. + $this->assertInstanceOf('\core\event\course_category_updated', $event); + $this->assertEquals(context_coursecat::instance($category2->id), $event->get_context()); + $expected = array(SITEID, 'category', 'hide', 'editcategory.php?id=' . $category2->id, $category2->id); + $this->assertEventLegacyLogData($expected, $event); + + // Trigger and capture the event for unhiding a category. + $sink = $this->redirectEvents(); + $category2->show(); + $events = $sink->get_events(); + $event = reset($events); + + // Check that the event data is valid. + $this->assertInstanceOf('\core\event\course_category_updated', $event); + $this->assertEquals(context_coursecat::instance($category2->id), $event->get_context()); + $expected = array(SITEID, 'category', 'show', 'editcategory.php?id=' . $category2->id, $category2->id); + $this->assertEventLegacyLogData($expected, $event); } }