aboutsummaryrefslogtreecommitdiff
path: root/mod/notifications/actions
diff options
context:
space:
mode:
Diffstat (limited to 'mod/notifications/actions')
-rw-r--r--mod/notifications/actions/groupsave.php44
-rw-r--r--mod/notifications/actions/save.php42
2 files changed, 86 insertions, 0 deletions
diff --git a/mod/notifications/actions/groupsave.php b/mod/notifications/actions/groupsave.php
new file mode 100644
index 000000000..ca250c7fd
--- /dev/null
+++ b/mod/notifications/actions/groupsave.php
@@ -0,0 +1,44 @@
+<?php
+
+ /**
+ * Elgg notifications group save
+ *
+ * @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();
+
+ // Load important global vars
+ global $SESSION;
+ global $NOTIFICATION_HANDLERS;
+
+ // Get group memberships and condense them down to an array of guids
+ $groups = array();
+ if ($groupmemberships = elgg_get_entities_from_relationship(array('relationship' => 'member', 'relationship_guid' => $_SESSION['user']->guid, 'types' => 'group', 'limit' => 9999))) {
+ foreach($groupmemberships as $groupmembership)
+ $groups[] = $groupmembership->guid;
+ }
+
+ foreach($NOTIFICATION_HANDLERS as $method => $foo) {
+ $subscriptions[$method] = get_input($method.'subscriptions');
+ $personal[$method] = get_input($method.'personal');
+ $collections[$method] = get_input($method.'collections');
+ if (!empty($groups))
+ foreach($groups as $group)
+ if (in_array($group,$subscriptions[$method])) {
+ add_entity_relationship($SESSION['user']->guid,'notify'.$method,$group);
+ } else {
+ remove_entity_relationship($SESSION['user']->guid,'notify'.$method,$group);
+ }
+ }
+
+ system_message(elgg_echo('notifications:subscriptions:success'));
+
+ forward($_SERVER['HTTP_REFERER']);
+
+?> \ No newline at end of file
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