<?php /** * Update the notifications based on all friends and access collections */ // loop through all users checking collections and notifications global $DB_QUERY_CACHE, $DB_PROFILE, $ENTITY_CACHE, $CONFIG; global $NOTIFICATION_HANDLERS; $users = mysql_query("SELECT guid, username FROM {$CONFIG->dbprefix}users_entity WHERE username != ''"); while ($user = mysql_fetch_object($users)) { $DB_QUERY_CACHE = $DB_PROFILE = $ENTITY_CACHE = array(); $user = get_entity($user->guid); foreach ($NOTIFICATION_HANDLERS as $method => $foo) { $notify = "notify$method"; $metaname = "collections_notifications_preferences_$method"; $collections_preferences = $user->$metaname; if (!$collections_preferences) { continue; } if (!is_array($collections_preferences)) { $collections_preferences = array($collections_preferences); } foreach ($collections_preferences as $collection_id) { // check the all friends notifications if ($collection_id == -1) { $options = array( 'relationship' => 'friend', 'relationship_guid' => $user->guid, 'limit' => 0 ); $friends = elgg_get_entities_from_relationship($options); foreach ($friends as $friend) { if (!check_entity_relationship($user->guid, $notify, $friend->guid)) { add_entity_relationship($user->guid, $notify, $friend->guid); } } } else { $members = get_members_of_access_collection($collection_id, TRUE); foreach ($members as $member) { if (!check_entity_relationship($user->guid, $notify, $members)) { add_entity_relationship($user->guid, $notify, $member); } } } } } }