You are here

public function PanelizerEntityViewBuilder::view in Panelizer 8.4

Same name and namespace in other branches
  1. 8.5 src/PanelizerEntityViewBuilder.php \Drupal\panelizer\PanelizerEntityViewBuilder::view()
  2. 8.3 src/PanelizerEntityViewBuilder.php \Drupal\panelizer\PanelizerEntityViewBuilder::view()

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 EntityViewBuilderInterface::view

File

src/PanelizerEntityViewBuilder.php, line 262

Class

PanelizerEntityViewBuilder
Entity view builder for entities that can be panelized.

Namespace

Drupal\panelizer

Code

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

  // Trigger hook_panelizer_pre_view_builder_alter().
  $this->moduleHandler
    ->alter('panelizer_pre_view_builder', $view_mode, $entity, $langcode);
  $displays = $this
    ->collectRenderDisplays([
    $entity,
  ], $view_mode);
  $display = $displays[$entity
    ->bundle()];
  if (!$this
    ->isPanelizerEnabled($display)) {
    return $this
      ->getFallbackViewBuilder()
      ->view($entity, $view_mode, $langcode);
  }
  $build = $this
    ->buildMultiplePanelized([
    $entity
      ->id() => $entity,
  ], $displays, $view_mode, $langcode);
  return $build[$entity
    ->id()];
}