diff --git a/classes/observers/group_observer.php b/classes/observers/group_observer.php index b7c7b78..535835b 100644 --- a/classes/observers/group_observer.php +++ b/classes/observers/group_observer.php @@ -51,4 +51,19 @@ public static function group_created(\core\event\group_created $event) { $DB->insert_record_raw('block_groups_hide', ['id' => $groupid], true, false, true); } } + + /** + * Handles the group_deleted event. + * Automatically deletes the groups from the block_groups_hide table when a group itself has been deleted. + * + * @param \core\event\group_deleted $event + */ + public static function group_deleted(\core\event\group_deleted $event) { + global $DB; + + $groupid = $event->objectid; + + // Remove the group from the block_groups_hide table. + $DB->delete_records('block_groups_hide', ['id' => $groupid]); + } } diff --git a/db/events.php b/db/events.php index 7d90229..fc279cc 100644 --- a/db/events.php +++ b/db/events.php @@ -29,4 +29,8 @@ 'eventname' => '\core\event\group_created', 'callback' => '\block_groups\observers\group_observer::group_created', ], + [ + 'eventname' => '\core\event\group_deleted', + 'callback' => '\block_groups\observers\group_observer::group_deleted', + ], ];