You are here

public function FormAssemblyEntityViewBuilder::view in FormAssembly 8

Builds the render array for the provided entity.

Parameters

\Drupal\Core\Entity\EntityInterface $entity: The entity to render.

string $view_mode: (optional) The view mode that should be used to render the entity.

string $langcode: (optional) For which language the entity should be rendered, defaults to the current content language.

Return value

array A render array for the entity.

Throws

\InvalidArgumentException Can be thrown when the set of parameters is inconsistent, like when trying to view a Comment and passing a Node which is not the one the comment belongs to, or not passing one, and having the comment node not be available for loading.

Overrides EntityViewBuilder::view

File

src/Entity/FormAssemblyEntityViewBuilder.php, line 67

Class

FormAssemblyEntityViewBuilder
Prepares the FormAssembly entity for display.

Namespace

Drupal\formassembly\Entity

Code

public function view(EntityInterface $entity, $view_mode = 'full', $langcode = NULL) {

  // The interface does not allow type hinting to an entity type.
  if (!$entity instanceof FormAssemblyEntity) {
    return [];
  }
  if (empty($_GET['tfa_next'])) {
    $markup = $this->markup
      ->getFormMarkup($entity);
  }
  else {
    $markup = $this->markup
      ->getNextForm($_GET['tfa_next']);
  }
  list($attached, $bodyMarkup) = $this
    ->splitMarkup($markup);
  $content['fa_markup'] = [
    '#type' => 'markup',
    '#markup' => new FormBodyUnescapedMarkup($bodyMarkup),
    '#cache' => [
      'max-age' => 0,
    ],
    '#attached' => [
      'fa_form_attachments' => $attached,
    ],
  ];

  // No bubbling of max age:
  // @see https://www.drupal.org/project/drupal/issues/2352009.
  $this->killSwitch
    ->trigger();
  return $content;
}