You are here

public function biblio_handler_field_biblio_keyword_kid::pre_render in Bibliography Module 7

Same name and namespace in other branches
  1. 6.2 views/biblio_handler_field_biblio_keyword_kid.inc \biblio_handler_field_biblio_keyword_kid::pre_render()
  2. 6 views/biblio_handler_field_biblio_keyword_kid.inc \biblio_handler_field_biblio_keyword_kid::pre_render()
  3. 7.2 views/biblio_handler_field_biblio_keyword_kid.inc \biblio_handler_field_biblio_keyword_kid::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

views/biblio_handler_field_biblio_keyword_kid.inc, line 25

Class

biblio_handler_field_biblio_keyword_kid

Code

public function pre_render($values) {
  $this->field_alias = $this->aliases['vid'];
  $vids = array();
  foreach ($values as $result) {
    if (!empty($result->{$this->aliases['vid']})) {
      $vids[] = $result->{$this->aliases['vid']};
    }
  }
  if ($vids) {
    $query = db_select('biblio_keyword_data', 'bkd');
    $query
      ->innerJoin('biblio_keyword', 'bk', 'bkd.kid = bk.kid');
    $query
      ->fields('bkd');
    $query
      ->addField('bk', 'vid', 'node_vid');
    $query
      ->orderby('bkd.word');
    $query
      ->condition('bk.vid', $vids);
    $query
      ->addMetaData('base_table', 'biblio_keyword');
    $query
      ->addTag('node_access');
    $result = $query
      ->execute();
    foreach ($result as $term) {
      $this->items[$term->node_vid][$term->kid] = check_plain($term->word);
    }
  }
}