You are here

protected function views_aggregator_plugin_style_table::render_new_webform_value in Views Aggregator Plus 7

Returns the rendered representation for a new webform value.

Parameters

object $field_handler: The webform handler associated with the requested field/table-column.

int $row_num: The result row number.

array $new_values: The raw value(s) to render using the webform's rounding, prefix, suffix.

string $separator: Separator to use between rendered values, when $new_values is an array.

Return value

string The rendered value.

2 calls to views_aggregator_plugin_style_table::render_new_webform_value()
views_aggregator_plugin_style_table::set_cell in views/views_aggregator_plugin_style_table.inc
Render and set a raw value on the table cell in specified column and row.
views_aggregator_plugin_style_table::set_totals_row in views/views_aggregator_plugin_style_table.inc
Write the aggregated results back into the View results totals (footer).

File

views/views_aggregator_plugin_style_table.inc, line 717
views_aggregator_plugin_style_table.inc

Class

views_aggregator_plugin_style_table
Style plugin to render each item as a row in a table.

Code

protected function render_new_webform_value($field_handler, $row_num, $new_values, $separator) {
  $result_row = $field_handler->view->result[$row_num];
  $nid = $field_handler->options['webform_nid'];
  $cid = $field_handler->options['webform_cid'];

  // Need to overwrite the submitted value on the _webform_submissions array
  // before rendering it, adding rounding, prefix, suffix.
  $submission = $field_handler->view->_webform_submissions[$nid][$result_row->sid];
  $rendered_values = array();
  $new_values = is_array($new_values) ? $new_values : array(
    $new_values,
  );
  foreach ($new_values as $new_value) {
    $submission->data[$cid][$row_num] = $new_value;
    $rendered = trim($field_handler
      ->advanced_render($result_row));
    $rendered_values[] = empty($rendered) ? $new_value : $rendered;
  }
  $rendered_value = implode(empty($separator) ? ' - ' : $separator, $rendered_values);
  return is_array($rendered_value) ? drupal_render($rendered_value) : $rendered_value;
}