You are here

function activity_buddy_activity in Activity 5.2

Same name and namespace in other branches
  1. 5 activity.module \activity_buddy_activity()

function to get all buddy activity @returns array of activity

2 calls to activity_buddy_activity()
activity_feed in ./activity.module
menu callback to return a feed of a signed in user's activity page
activity_page in ./activity.module
Menu callback to display the records in a page

File

./activity.module, line 159
Activity module: Allow users to see their friends' activity on the site.

Code

function activity_buddy_activity($account_id) {
  global $user;
  $buddies = array();
  $buddy_activity = array();

  // took activity_account from here
  $account = activity_account($account_id);
  switch ($_GET['who']) {
    case 'me':
      $me['uid'] = $user->uid;
      $me['name'] = $user->name;
      $me['mail'] = $user->mail;
      $me['online'] = 1;
      array_push($buddies, $me);
      break;
    case 'friends':

      // find who current user's buddies are = obj
      // $account must be int
      $buddies = buddylist_get_buddies($account);
      break;
    default:

      // find who current or viewed user's buddies are = obj
      $buddies = buddylist_get_buddies($account);

      // if looking at own friend activities, include own activities
      $q = explode('/', $_GET['q']);
      if (!is_numeric($q[1]) || $q[1] == $user->uid) {

        // add current user to list of buddies
        $me['uid'] = $user->uid;
        $me['name'] = $user->name;
        $me['mail'] = $user->mail;
        $me['online'] = 1;
        $buddies[$user->uid] = $me;
      }
      break;
  }

  // see what activity each buddy has done
  if (!empty($buddies)) {
    foreach ($buddies as $buddy) {
      $query = db_query(db_rewrite_sql("SELECT * FROM {activity} a WHERE a.uid = %d ORDER BY a.timestamp DESC", 'a', 'aid', array(
        'uid' => $buddy['uid'],
      )), $buddy['uid']);
      while ($row = db_fetch_object($query)) {

        // appending count to make the time stamp unique for sorting purposes
        $buddy_activity[$row->timestamp . $count] = $row;
        $count++;
      }
    }
  }
  return $buddy_activity;
}