1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- <?php
- /**
- * Update the notifications based on all friends and access collections
- */
- // loop through all users checking collections and notifications
- global $ENTITY_CACHE, $CONFIG;
- $NOTIFICATION_HANDLERS = _elgg_services()->notifications->getMethodsAsDeprecatedGlobal();
- $users = mysql_query("SELECT guid, username FROM {$CONFIG->dbprefix}users_entity
- WHERE username != ''");
- while ($user = mysql_fetch_object($users)) {
- $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);
- }
- }
- }
- }
- }
- }
|