function date_handler_field_multiple::pre_render in Date 6.2        
                          
                  
                        Same name and namespace in other branches
- 7 date_views/includes/date_handler_field_multiple.inc \date_handler_field_multiple::pre_render()
File
 
   - date/date_handler_field_multiple.inc, line 57
- An extended subclass for field handling that adds multiple field grouping.
Class
  
  - date_handler_field_multiple 
- @file
An extended subclass for field handling that adds multiple field grouping.
Code
function pre_render(&$values) {
  
  if (isset($this->view->build_info['summary']) || empty($values) || !$this->defer_query) {
    return parent::pre_render($values);
  }
  $field = $this->content_field;
  $db_info = content_database_info($field);
  $options = $this->options;
  $this->view->date_info->date_handler_fields = date_handler_fields($this->view);
  
  $vids = array();
  $this->field_values = array();
  foreach ($values as $result) {
    if (isset($result->{$this->field_alias})) {
      $vids[] = $result->{$this->field_alias};
    }
  }
  
  $alias = content_views_tablename($field);
  
  $query_columns = array(
    'node.vid AS _vid',
    "{$alias}.delta as _delta",
    
    'node.nid AS _nid',
  );
  
  foreach ($db_info['columns'] as $column => $attributes) {
    $query_columns[] = "{$alias}.{$attributes['column']} AS {$column}";
    $query_fields[] = "{$alias}.{$attributes['column']}";
  }
  
  $where = array(
    '1',
  );
  $query = 'SELECT ' . implode(', ', $query_columns) . ' FROM {' . $db_info['table'] . "} {$alias}" . " LEFT JOIN {node} node ON node.vid = {$alias}.vid" . " WHERE node.vid IN (" . implode(',', $vids) . ') AND ' . implode(' OR ', $where) . " ORDER BY node.nid ASC, {$alias}.delta ASC";
  $result = db_query($query);
  while ($item = db_fetch_array($result)) {
    
    $vid = $item['_vid'];
    unset($item['_vid']);
    $delta = !empty($item['_delta']) ? $item['_delta'] : 0;
    $item['#delta'] = $item['_delta'];
    unset($item['_delta']);
    $this->field_values[$vid][$delta] = $item;
  }
}