aboutsummaryrefslogtreecommitdiff
path: root/mod/notifications/start.php
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-06-04 15:36:36 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-06-04 15:36:36 +0000
commitf4b1ebbe468e295d59bf7285b335aa51bcf132bb (patch)
tree517ed7919069d8a6c3fb34235b048a2bbab91e98 /mod/notifications/start.php
parent559cae5d9035f65f12c1cc25cffe05880a2734c4 (diff)
downloadelgg-f4b1ebbe468e295d59bf7285b335aa51bcf132bb.tar.gz
elgg-f4b1ebbe468e295d59bf7285b335aa51bcf132bb.tar.bz2
Merge r6301:6338 from 1.7 to trunk.
git-svn-id: http://code.elgg.org/elgg/trunk@6356 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/notifications/start.php')
-rw-r--r--mod/notifications/start.php28
1 files changed, 26 insertions, 2 deletions
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");