You are here

function og_handler_field_user_roles::pre_render in Organic groups 7.2

Same name and namespace in other branches
  1. 7 includes/views/og_handler_field_user_roles.inc \og_handler_field_user_roles::pre_render()

Run before any fields are rendered.

This gives the handlers some time to set up before any handler has been rendered.

Parameters

array $values: An array of all objects returned from the query.

Overrides views_handler_field::pre_render

File

includes/views/handlers/og_handler_field_user_roles.inc, line 34

Class

og_handler_field_user_roles
Field handler to provide a list of OG roles of a user.

Code

function pre_render(&$values) {
  if (!isset($this->aliases['uid']) || !isset($this->aliases['group_type'])) {
    return;
  }
  $list = array();
  $this->items = array();
  foreach ($values as $value) {
    if ($value->{$this->aliases['uid']} && $value->{$this->field_alias}) {
      $list[] = array(
        'uid' => $value->{$this->aliases['uid']},
        'group_type' => $value->{$this->aliases['group_type']},
        'gid' => $value->{$this->field_alias},
      );
    }
  }

  // Array of all the role IDs we will need to get a role name.
  $all_rids = array();
  if ($list) {
    foreach ($list as $value) {
      $rids = og_get_user_roles($value['group_type'], $value['gid'], $value['uid'], FALSE);
      foreach ($rids as $rid => $role) {
        $this->items[$value['gid']][$value['uid']][$rid]['rid'] = $rid;
        $this->items[$value['gid']][$value['uid']][$rid]['role'] = $role;
      }
    }
  }
}