public function views_aggregator_plugin_style_table::set_cell in Views Aggregator Plus 7
Render and set a raw value on the table cell in specified column and row.
Parameters
object $field_handler: The field handler associated with the table column being requested.
int $row_num: The result row number. Must be specified.
mixed $new_values: A single or array of values to set. This should be the raw value(s), otherwise sorting may not work properly.
string $separator: The separator to use, when $new_values is an array.
Return value
mixed The rendered value.
1 call to views_aggregator_plugin_style_table::set_cell()
- views_aggregator_plugin_style_table::set_aggregated_group_values in views/
views_aggregator_plugin_style_table.inc - Write the aggregated results back into the View's rendered results.
File
Class
- views_aggregator_plugin_style_table
- Style plugin to render each item as a row in a table.
Code
public function set_cell($field_handler, $row_num, $new_values, $separator) {
$rendered_value = FALSE;
$field_name = $field_handler->options['id'];
// The webform submission id comes in as views_handler_field_numeric, so all
// we have to detect it is its name, i.e. 'sid'.
$is_webform_value = $field_name == 'sid' || is_a($field_handler, 'webform_handler_field_submission_data');
// Depending on the aggregation function applied, default rendering may be
// inappropriate. For instance "Trains (4)" cannot be rendered numerically.
if ($is_renderable = $this
->is_renderable($field_name, FALSE)) {
if ($is_webform_value) {
$rendered_value = $this
->render_new_webform_value($field_handler, $row_num, $new_values, $separator);
}
elseif (is_a($field_handler, 'views_php_handler_field')) {
// This prevents Views PHP from re-rendering the code snippet and makes
// it pick up the value from $result_row.
$field_handler->options['php_output'] = FALSE;
}
else {
$rendered_value = $this
->render_new_value($field_handler, $row_num, $new_values, $separator);
}
}
elseif ($is_webform_value) {
$rendered_value = $new_values;
}
if ($rendered_value === FALSE && !$is_webform_value) {
$rendered_value = is_array($new_values) ? implode($separator, $new_values) : $new_values;
}
return $this->rendered_fields[$row_num][$field_name] = $rendered_value;
}