function og_handler_field_group_permissions::pre_render in Organic groups 7
Same name and namespace in other branches
- 7.2 includes/views/handlers/og_handler_field_group_permissions.inc \og_handler_field_group_permissions::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_group_permissions.inc, line 12
Class
- og_handler_field_group_permissions
- Field handler to provide a list of group permissions.
Code
function pre_render($values) {
$list = array();
$this->items = array();
foreach ($values as $value) {
$list[] = array(
'uid' => $value->{$this->aliases['uid']},
'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['gid'], $value['uid']);
// Hold the user role IDs per group and per user.
$value['rids'] = $rids;
$all_rids = array_merge($all_rids, $rids);
}
if ($all_rids) {
$all_perms = og_get_permissions();
// Get the permissions of all the roles we need to show.
$perms = og_role_permissions($all_rids);
foreach ($list as $value) {
foreach ($value['rids'] as $rid) {
foreach ($perms[$rid] as $perm => $perm_value) {
$this->items[$value['gid']][$value['uid']][$perm]['perm'] = $all_perms[$perm]['title'];
}
}
}
}
}
}