diff --git a/tag/coursetagslib.php b/tag/coursetagslib.php index 76e98fa7202..5e2ea35bb1f 100644 --- a/tag/coursetagslib.php +++ b/tag/coursetagslib.php @@ -315,14 +315,16 @@ function coursetag_get_tagged_courses($tagid) { function coursetag_delete_course_tags($courseid, $showfeedback=false) { global $DB, $OUTPUT; - if ($taginstances = $DB->get_fieldset_select('tag_instance', 'tagid', "itemtype = 'course' AND itemid = :courseid", - array('courseid' => $courseid))) { + if ($taginstances = $DB->get_recordset_select('tag_instance', "itemtype = 'course' AND itemid = :courseid", + array('courseid' => $courseid), '', 'tagid, tiuserid')) { - tag_delete(array_values($taginstances)); + foreach ($taginstances as $record) { + tag_delete_instance('course', $courseid, $record->tagid, $record->tiuserid); + } + $taginstances->close(); } if ($showfeedback) { echo $OUTPUT->notification(get_string('deletedcoursetags', 'tag'), 'notifysuccess'); } } - diff --git a/tag/tests/events_test.php b/tag/tests/events_test.php index 2ecc0fca0d6..f777074dfc5 100644 --- a/tag/tests/events_test.php +++ b/tag/tests/events_test.php @@ -452,7 +452,7 @@ class core_tag_events_testcase extends advanced_testcase { $sink = $this->redirectEvents(); coursetag_delete_course_tags($course->id); $events = $sink->get_events(); - $events = array($events[2], $events[3]); + $events = array($events[1], $events[3]); // Check that the tags were deleted and the events data is valid. $this->assertEquals(0, $DB->count_records('tag'));