You are here

public function WebformSubmissionField::render in Webform Views Integration 8.5

Renders the field.

Parameters

\Drupal\views\ResultRow $values: The values retrieved from a single row of a view's query result.

Return value

string|\Drupal\Component\Render\MarkupInterface The rendered output. If the output is safe it will be wrapped in an object that implements MarkupInterface. If it is empty or unsafe it will be a string.

Overrides FieldPluginBase::render

1 method overrides WebformSubmissionField::render()
WebformSubmissionCompositeField::render in src/Plugin/views/field/WebformSubmissionCompositeField.php
Renders the field.

File

src/Plugin/views/field/WebformSubmissionField.php, line 128

Class

WebformSubmissionField
Webform submission field.

Namespace

Drupal\webform_views\Plugin\views\field

Code

public function render(ResultRow $values) {

  /** @var \Drupal\webform\WebformSubmissionInterface $webform_submission */
  $webform_submission = $this
    ->getEntity($values);
  if ($webform_submission && $webform_submission
    ->access('view')) {
    $webform = $webform_submission
      ->getWebform();

    // Get format and element key.
    $format = $this->options['webform_element_format'];
    $element_key = $this->definition['webform_submission_field'];

    // Get element and element handler plugin.
    $element = $webform
      ->getElement($element_key, TRUE);
    if (!$element) {
      return [];
    }

    // Set the format.
    $element['#format'] = $format;

    // Get element handler and get the element's HTML render array.
    $element_handler = $this->webformElementManager
      ->getElementInstance($element);
    $options = [];
    if (!$this->options['webform_multiple_value']) {
      $options['delta'] = $this->options['webform_multiple_delta'];
    }
    return $element_handler
      ->formatHtml($element, $webform_submission, $options);
  }
  return [];
}