You are here

function workbench_access_handler_field_section::pre_render in Workbench Access 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

includes/workbench_access_handler_field_section.inc, line 53
Views integration for Workbench Access.

Class

workbench_access_handler_field_section
@file Views integration for Workbench Access.

Code

function pre_render(&$values) {

  // We have to find the sections assigned to each node.
  // Load node data.
  $nids = array();
  foreach ($values as $result) {
    if (!empty($result->{$this->aliases['nid']})) {
      $nids[] = $result->{$this->aliases['nid']};
    }
  }
  $nodes = node_load_multiple($nids, array());

  // Now match the data to the active tree.
  $active = workbench_access_get_active_tree();
  foreach ($values as $value) {
    if (isset($value->{$this->aliases['nid']}) && isset($nodes[$value->{$this->aliases['nid']}]->workbench_access)) {
      foreach ($nodes[$value->{$this->aliases['nid']}]->workbench_access as $access_id) {
        $value->workbench_access[] = check_plain($active['tree'][$access_id]['name']);
        $this->items[$value->{$this->aliases['nid']}][$access_id]['value'] = check_plain($active['tree'][$access_id]['name']);
      }
    }
    else {
      $value->workbench_access = array();
    }
  }
}