You are here

public function LogViewBuilder::viewMultiple in Commerce Core 8.2

Builds the render array for the provided entities.

Parameters

array $entities: An array of entities implementing EntityInterface to view.

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

A render array for the entities, indexed by the same keys as the entities array passed in $entities.

Throws

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

Overrides EntityViewBuilder::viewMultiple

1 call to LogViewBuilder::viewMultiple()
LogViewBuilder::view in modules/log/src/LogViewBuilder.php
Builds the render array for the provided entity.

File

modules/log/src/LogViewBuilder.php, line 14

Class

LogViewBuilder

Namespace

Drupal\commerce_log

Code

public function viewMultiple(array $entities = [], $view_mode = 'full', $langcode = NULL) {
  $build_list = [
    '#sorted' => TRUE,
  ];
  $weight = 0;

  /** @var \Drupal\commerce_log\Entity\LogInterface $entity */
  foreach ($entities as $key => $entity) {
    $build_list[$key] = [
      '#type' => 'inline_template',
      '#template' => $entity
        ->getTemplate()
        ->getTemplate(),
      '#context' => $entity
        ->getParams(),
      // Collect cache defaults for this entity.
      '#cache' => [
        'tags' => Cache::mergeTags($this
          ->getCacheTags(), $entity
          ->getCacheTags()),
        'contexts' => $entity
          ->getCacheContexts(),
        'max-age' => $entity
          ->getCacheMaxAge(),
      ],
    ];

    // Give templates access to the source entity.
    $source_type = str_replace('commerce_', '', $entity
      ->getSourceEntityTypeId());
    $build_list[$key]['#context'][$source_type] = $entity
      ->getSourceEntity();
    $entityType = $this->entityTypeId;
    $this
      ->moduleHandler()
      ->alter([
      $entityType . '_build',
      'entity_build',
    ], $build_list[$key], $entity, $view_mode);
    $build_list[$key]['#weight'] = $weight++;
  }
  return $build_list;
}