public function EntityRenderController::viewMultiple

Implements Drupal\Core\Entity\EntityRenderControllerInterface::viewMultiple().

Overrides EntityRenderControllerInterface::viewMultiple

1 call to EntityRenderController::viewMultiple()

File

drupal/core/lib/Drupal/Core/Entity/EntityRenderController.php, line 117
Definition of Drupal\Core\Entity\EntityRenderController.

Class

EntityRenderController
Base class for entity view controllers.

Namespace

Drupal\Core\Entity

Code

public function viewMultiple(array $entities = array(), $view_mode = 'full', $langcode = NULL) {
  if (!isset($langcode)) {
    $langcode = language(LANGUAGE_TYPE_CONTENT)->langcode;
  }
  $this
    ->buildContent($entities, $view_mode, $langcode);
  $view_hook = "{$this->entityType}_view";
  $build = array(
    '#sorted' => TRUE,
  );
  $weight = 0;
  foreach ($entities as $key => $entity) {
    $entity_view_mode = isset($entity->content['#view_mode']) ? $entity->content['#view_mode'] : $view_mode;
    module_invoke_all($view_hook, $entity, $entity_view_mode, $langcode);
    module_invoke_all('entity_view', $entity, $entity_view_mode, $langcode);
    $build[$key] = $entity->content;

    // We don't need duplicate rendering info in $entity->content.
    unset($entity->content);
    $build[$key] += $this
      ->getBuildDefaults($entity, $entity_view_mode, $langcode);
    $this
      ->alterBuild($build[$key], $entity, $entity_view_mode, $langcode);
    $build[$key]['#weight'] = $weight++;

    // Allow modules to modify the structured entity.
    drupal_alter(array(
      $view_hook,
      'entity_view',
    ), $build[$key], $entity);
  }
  return $build;
}