You are here

function oa_team_members_render in Open Atrium Core 7.2

Main render function for oa_team_members.

1 string reference to 'oa_team_members_render'
oa_teams_members.inc in modules/oa_teams/plugins/content_types/oa_teams_members.inc

File

modules/oa_teams/plugins/content_types/oa_teams_members.inc, line 21

Code

function oa_team_members_render($subtype, $conf, $args, $context = NULL) {
  global $user;
  if (!isset($context->data)) {
    return;
  }
  $team = $context->data;
  $group = og_get_entity_groups($entity_type = 'node', $team);
  if (empty($group['node'])) {
    return;
  }
  $space = current(entity_load('node', $group['node']));
  $is_admin = $user->uid == 1 ? TRUE : FALSE;
  $members = oa_teams_get_team_members($space->nid);
  $roles = og_get_user_roles('node', $space->nid, $user->uid);
  if (in_array(OG_ADMINISTRATOR_ROLE, $roles) || $user->uid == $space->uid) {
    $is_admin = TRUE;
  }
  $block = new stdClass();
  $block->title = 'Team Members';
  $members = oa_teams_get_team_members($team->nid);
  $members = user_load_multiple(array_keys($members));
  uasort($members, 'oa_core_sort_users_by_name');
  $vars = array();
  foreach ($members as $id => $entity) {
    $vars['members'][$id] = oa_teams_entity_build_display($entity, $id);
    $vars['links']['remove_options'][$id] = array(
      'query' => drupal_get_destination() + array(
        'token' => drupal_get_token('remove-team-membmer-' . $id),
      ),
    );
  }
  $vars['links']['dashboard'] = 'user/';
  if ($is_admin) {
    $vars['links']['remove'] = 'group/node/' . $space->nid . '/remove-team/' . $team->nid . '/';
  }
  else {
    $vars['links']['remove'] = '';
  }
  $block->content = theme('oa_teams_members', $vars);
  return $block;
}