You are here

function theme_oa_team_update in Open Atrium Core 7.2

Theme function for showing who is added and removed from team

Parameters

$vars['old_users'] the old value of field_oa_team_users:

Return value

$vars['new_users'] the new value of field_oa_team_users

1 theme call to theme_oa_team_update()
oa_messages_oa_messages_create_alter in modules/oa_messages/oa_messages.module
Implements hook_oa_messages_create_alter Add additional fields to wrapper for messages

File

modules/oa_messages/oa_messages.module, line 516

Code

function theme_oa_team_update($vars) {
  $old_users = $vars['old_users'];
  $new_users = $vars['new_users'];

  // convert values of field into a simple array of uids
  $old = array();
  $new = array();
  if (is_array($old_users)) {
    foreach ($old_users as $item) {
      $old[] = $item['target_id'];
    }
  }
  if (is_array($new_users)) {
    foreach ($new_users as $item) {
      $new[] = $item['target_id'];
    }
  }

  // grab all user's real names
  $uids = array_merge($old, $new);
  $users = entity_load('user', $uids);
  foreach ($users as $uid => $user) {

    // handle case where realname isn't set or installed
    if (empty($user->realname)) {
      $users[$uid]->realname = $user->name;
    }
  }
  $output = '';

  // determine who was added
  $diff = array_diff($new, $old);
  $add_links = array();
  foreach ($diff as $uid) {
    $add_links[] = l($users[$uid]->realname, 'user/' . $uid);
  }
  if (!empty($add_links)) {
    $output .= t('Added') . ' ' . implode(', ', $add_links) . '. ';
  }

  // determine who was removed
  $diff = array_diff($old, $new);
  $remove_links = array();
  foreach ($diff as $uid) {
    $remove_links[] = l($users[$uid]->realname, 'user/' . $uid);
  }
  if (!empty($remove_links)) {
    $output .= t('Removed') . ' ' . implode(', ', $remove_links) . '. ';
  }
  return $output;
}