From f4b1ebbe468e295d59bf7285b335aa51bcf132bb Mon Sep 17 00:00:00 2001 From: brettp Date: Fri, 4 Jun 2010 15:36:36 +0000 Subject: Merge r6301:6338 from 1.7 to trunk. git-svn-id: http://code.elgg.org/elgg/trunk@6356 36083f99-b078-4883-b0ff-0f9b5a30f544 --- mod/notifications/start.php | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'mod/notifications/start.php') diff --git a/mod/notifications/start.php b/mod/notifications/start.php index 873095b8b..fa36d5d69 100644 --- a/mod/notifications/start.php +++ b/mod/notifications/start.php @@ -23,6 +23,10 @@ function notifications_plugin_init() { // Unset the default notification settings unregister_plugin_hook('usersettings:save', 'user', 'notification_user_settings_save'); elgg_unextend_view('usersettings/user', 'notifications/settings/usersettings'); + + // update notifications based on relationships changing + register_elgg_event_handler('delete', 'member', 'notifications_relationship_remove'); + register_elgg_event_handler('delete', 'friend', 'notifications_relationship_remove'); } /** @@ -52,7 +56,7 @@ function notifications_page_handler($page) { } /** - * Notification settings page setup function + * Notification settings sidebar menu * */ function notifications_plugin_pagesetup() { @@ -65,9 +69,29 @@ function notifications_plugin_pagesetup() { } } +/** + * Update notifications when a relationship is deleted + * + * @param string $event + * @param string $object_type + * @param object $relationship + */ +function notifications_relationship_remove($event, $object_type, $relationship) { + global $NOTIFICATION_HANDLERS; + + $user_guid = $relationship->guid_one; + $object_guid = $relationship->guid_two; + + // loop through all notification types + foreach($NOTIFICATION_HANDLERS as $method => $foo) { + remove_entity_relationship($user_guid, "notify{$method}", $object_guid); + } +} + + register_elgg_event_handler('init', 'system', 'notifications_plugin_init', 1000); -// Register action + register_action("notificationsettings/save", FALSE, $CONFIG->pluginspath . "notifications/actions/save.php"); register_action("notificationsettings/groupsave", FALSE, $CONFIG->pluginspath . "notifications/actions/groupsave.php"); -- cgit v1.2.3