function og_handler_field_user_roles::pre_render in Organic groups 7
Same name and namespace in other branches
- 7.2 includes/views/handlers/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/ og_handler_field_user_roles.inc, line 25
Class
- og_handler_field_user_roles
- Field handler to provide a list of group roles.
Code
function pre_render(&$values) {
if (!isset($this->aliases['uid'])) {
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']},
'gid' => $value->{$this->field_alias},
);
}
}
// Array of all the role IDss we will need to get a role name.
$all_rids = array();
if ($list) {
foreach ($list as $value) {
$rids = og_get_user_roles($value['gid'], $value['uid']);
foreach ($rids as $rid) {
$this->items[$value['gid']][$value['uid']][$rid]['rid'] = $rid;
}
$all_rids = array_merge($all_rids, $rids);
}
// Get the name of all the roles we need to show.
$all_rids = og_get_user_roles_name($all_rids);
// Sanitize each role name once.
array_walk($all_rids, 'check_plain');
foreach ($this->items as $gid => $gid_value) {
foreach ($gid_value as $uid => $uid_value) {
foreach ($uid_value as $rid => $value) {
$this->items[$gid][$uid][$rid]['role'] = $all_rids[$rid];
}
}
}
}
}