You are here

function casetracker_views_handler_field_case_count::pre_render in Case Tracker 6

Same name and namespace in other branches
  1. 7 includes/casetracker_views_handler_field_case_count.inc \casetracker_views_handler_field_case_count::pre_render()

File

includes/casetracker_views_handler_field_case_count.inc, line 50

Class

casetracker_views_handler_field_case_count
Field handler to show case counts for projects.

Code

function pre_render($values) {
  $nids = array();
  foreach ($values as $row) {
    $nids[] = $row->nid;
  }
  if (!empty($nids)) {
    $this->counts = array();
    $placeholders = db_placeholders($nids, 'int');

    // Add a filter by realm/type if option is set.
    $where = '';
    if (!empty($this->options['type'])) {
      $filter = explode('-', $this->options['type']);
      $where = "AND case_{$filter[0]}_id = %d";
      $nids[] = $filter[1];
    }
    $result = db_query("SELECT count(c.nid) AS count, c.pid FROM {casetracker_case} c JOIN {node} n ON c.nid = n.nid AND c.vid = n.vid WHERE c.pid IN ({$placeholders}) {$where} GROUP BY c.pid", $nids);
    while ($row = db_fetch_object($result)) {
      $this->counts[$row->pid] = $row->count;
    }
  }
}