function date_views_field_handler_group in Date 5.2
2 calls to date_views_field_handler_group()
File
- date/
date_views.inc, line 41
Code
function date_views_field_handler_group($field_info, $field_data, $value, $data, $from = 0, $count = 'all', $order = 'ASC') {
$view = $GLOBALS['current_view'];
$handler = $field_data['handler'];
$field = $field_info['content_field'];
$items = array();
if ($field['multiple']) {
$table_alias = "node_data_{$field['field_name']}";
foreach ($field_info['content_db_info']['columns'] as $column => $attributes) {
$query_columns[] = "{$table_alias}.{$attributes['column']} AS {$column}";
}
$query_columns[] = "{$table_alias}.delta AS delta";
// If the view has a minimum/maximum date, limited the grouped
// values to the date range.
$where = '';
if (!empty($view->date_handler) && !empty($view->min_date)) {
$date_handler = $view->date_handler;
$sql_field = $field_data['fullname'];
$replace = date_api_views_query_substitutions($view);
$sql1 = $date_handler
->sql_where_date('DATE', $sql_field, ">=", date_format($view->min_date, DATE_FORMAT_DATETIME));
$sql2 = $date_handler
->sql_where_date('DATE', $sql_field, "<=", date_format($view->max_date, DATE_FORMAT_DATETIME));
$where = ' AND ' . strtr($sql1, $replace) . ' AND ' . strtr($sql2, $replace);
}
// Note : this query doesn't need to run through db_rewrite_sql, since the
// nids we retrieve have been selected by the views query, which already takes
// care of this.
$query = "SELECT " . implode(', ', $query_columns) . " FROM {node} node" . " LEFT JOIN {" . $field_info['content_db_info']['table'] . "} {$table_alias} ON node.vid = {$table_alias}.vid" . " WHERE node.nid = " . $data->nid . $where . " ORDER BY {$table_alias}.delta {$order}";
// Select all deltas or only a subset.
// Currently only 'all' and first / last items are proposed to the user.
$result = $count == 'all' ? db_query($query) : db_query_range($query, $from, $count);
while ($item = db_fetch_array($result)) {
$item['#delta'] = $item[delta];
unset($item['delta']);
if ($field['repeat'] && $handler == 'date_views_field_handler_group') {
$data->date_repeat_show = TRUE;
}
$items[] = content_format($field, $item, $field_data['options'], $data);
}
return theme('content_view_multiple_field', $items, $field, $data);
}
else {
return date_views_field_handler_ungroup($field_info, $field_data, $value, $data);
}
}