function casetracker_views_handler_field_case_count::pre_render in Case Tracker 7
Same name and namespace in other branches
- 6 includes/casetracker_views_handler_field_case_count.inc \casetracker_views_handler_field_case_count::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
- includes/
casetracker_views_handler_field_case_count.inc, line 53
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();
$query = db_select('casetracker_case', 'c')
->fields('c', array(
'pid',
));
$query
->addExpression('COUNT(c.nid)', 'count');
// Add a filter by realm/type if option is set.
if (!empty($this->options['type'])) {
$filter = explode('-', $this->options['type']);
$query
->condition('case_' . $filter[0] . '_id', $filter[1]);
}
$query
->condition('c.pid', $nids, 'IN');
$query
->join('node', 'n', 'c.nid = n.nid AND c.vid = n.vid');
$query
->groupBy('c.pid');
$result = $query
->execute();
foreach ($result
->fetchAll() as $row) {
$this->counts[$row->pid] = $row->count;
}
}
}