You are here

function domain_views_handler_field_domain_access_sitename::pre_render in Domain Views 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/domain_views_handler_field_domain_access_sitename.inc, line 60
Interface between domain_views.module and views.module.

Class

domain_views_handler_field_domain_access_sitename
Field handler to provide simple renderer that allows linking to a domain.

Code

function pre_render($values) {

  // If there are no values to render (displaying a summary, or query returned no results)
  // do nothing specific.
  if (isset($this->view->build_info['summary']) || empty($values)) {
    return parent::pre_render($values);
  }
  $options = $this->options;

  // Only alter output if requested.
  if ($this->view->base_table == 'node' && !empty($options['list_all_domains'])) {

    // Build a list of nids
    $nids = array();
    foreach ($values as $value) {
      $nids[] = $value->domain_nid;
    }
    if (!empty($nids)) {
      $this->field_values = array();
      $query = "SELECT node.nid AS nid, domain.sitename AS domain_sitename, domain.domain_id AS domain_domain_id\n          FROM node node  LEFT JOIN domain_access domain_access ON node.nid = domain_access.nid\n          INNER JOIN domain domain ON domain_access.gid = domain.domain_id AND (domain_access.realm = 'domain_id')\n          WHERE node.nid  IN (" . implode(',', $nids) . ")";
      $result = db_query($query);
      foreach ($result as $data) {
        $this->field_values[$data->nid][$data->domain_domain_id] = $data->domain_sitename;
      }
    }
  }
}