You are here

function views_handler_field_audit_log_roles::pre_render in Audit Log 7

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

modules/audit_log_db/views/handlers/views_handler_field_audit_log_roles.inc, line 19
Definition of views_handler_field_audit_log_roles.

Class

views_handler_field_audit_log_roles
Field handler to provide a list of roles.

Code

function pre_render(&$values) {
  $this->field_alias = $this->aliases['audit_log_id'];
  $log_ids = array();
  $this->items = array();
  foreach ($values as $result) {
    if (!empty($result->{$this->aliases['audit_log_id']})) {
      $log_ids[] = $result->{$this->aliases['audit_log_id']};
    }
  }
  if ($log_ids) {
    $result = db_query("SELECT r.rid, r.name, ar.audit_log_id FROM {role} r INNER JOIN {audit_log_roles} ar ON r.rid = ar.role_id WHERE ar.audit_log_id IN (:log_ids) ORDER BY r.name", array(
      ':log_ids' => $log_ids,
    ));
    foreach ($result as $role) {
      $this->items[$role->audit_log_id][$role->rid]['role'] = check_plain($role->name);
      $this->items[$role->audit_log_id][$role->rid]['rid'] = $role->rid;
    }
  }
}