'html'); return $options; } /** * */ public function options_form(&$form, &$form_state) { parent::options_form($form, $form_state); $options = $this->options_form_summary_options(); $form['format'] = array( '#type' => 'radios', '#options' => $options, '#title' => t('Display mode'), '#default_value' => $this->options['format'], ); } /** * Return the main options, which are shown in the summary title. */ public function options_form_summary_options() { return array( 'html' => t('HTML'), 'text' => t('Plain text'), ); } /** * */ public function summary_title() { $options = $this->options_form_summary_options(); return check_plain($options[$this->options['format']]); } /** * */ public function pre_render($values) { $sids = array(); foreach ($values as $row) { $sids[] = $row->{$this->field_alias}; } module_load_include('inc', 'webform', 'includes/webform.submissions'); $this->submissions = $sids ? webform_get_submissions(array('sid' => $sids)) : array(); $nids = array(); foreach ($this->submissions as $sid => $submission) { $nids[] = $submission->nid; } $nids = array_unique($nids); $this->nodes = $nids ? node_load_multiple($nids) : array(); } /** * */ public function render($row) { if (isset($this->submissions[$row->{$this->field_alias}])) { $submission = $this->submissions[$row->{$this->field_alias}]; $node = $this->nodes[$submission->nid]; $submission->view = $this->view; $format = $this->options['format']; $build = webform_submission_render($node, $submission, NULL, $format); // Add extra theme functions: $themes = array(); foreach ($build['#theme'] as $hook) { $themes = array_merge($themes, _views_theme_functions($hook, $this->view, $this->view->display[$this->view->current_display])); } $build['#theme'] = $themes; // Render built submission, and if unsanitized plain text is used, make it safe for display. $render = drupal_render($build); return $format == 'html' ? $render : nl2br(check_plain($render)); } } }