aboutsummaryrefslogtreecommitdiff
path: root/mod/notifications/actions/save.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/notifications/actions/save.php')
-rw-r--r--mod/notifications/actions/save.php42
1 files changed, 42 insertions, 0 deletions
diff --git a/mod/notifications/actions/save.php b/mod/notifications/actions/save.php
new file mode 100644
index 000000000..a4a5903f9
--- /dev/null
+++ b/mod/notifications/actions/save.php
@@ -0,0 +1,42 @@
+<?php
+
+ /**
+ * Elgg notifications
+ *
+ * @package ElggNotifications
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider Ltd
+ * @copyright Curverider Ltd 2008-2010
+ * @link http://elgg.com/
+ */
+
+ // Restrict to logged in users
+ gatekeeper();
+
+ global $SESSION;
+
+ global $NOTIFICATION_HANDLERS;
+ foreach($NOTIFICATION_HANDLERS as $method => $foo) {
+ $subscriptions[$method] = get_input($method.'subscriptions');
+ $personal[$method] = get_input($method.'personal');
+ $collections[$method] = get_input($method.'collections');
+
+ $metaname = 'collections_notifications_preferences_' . $method;
+ $_SESSION['user']->$metaname = $collections[$method];
+ set_user_notification_setting($_SESSION['user']->guid, $method, ($personal[$method] == '1') ? true : false);
+ remove_entity_relationships($SESSION['user']->guid,'notify' . $method, false, 'user');
+ }
+
+ // Add new ones
+ foreach($subscriptions as $key => $subscription)
+ if (is_array($subscription) && !empty($subscription)) {
+ foreach($subscription as $subscriptionperson) {
+ add_entity_relationship($_SESSION['user']->guid, 'notify' . $key, $subscriptionperson);
+ }
+ }
+
+ system_message(elgg_echo('notifications:subscriptions:success'));
+
+ forward($_SERVER['HTTP_REFERER']);
+
+?> \ No newline at end of file