public function PanelizerEntityViewBuilder::viewMultiple in Panelizer 8.4
Same name and namespace in other branches
- 8.5 src/PanelizerEntityViewBuilder.php \Drupal\panelizer\PanelizerEntityViewBuilder::viewMultiple()
- 8.3 src/PanelizerEntityViewBuilder.php \Drupal\panelizer\PanelizerEntityViewBuilder::viewMultiple()
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 EntityViewBuilderInterface::viewMultiple
File
- src/
PanelizerEntityViewBuilder.php, line 280
Class
- PanelizerEntityViewBuilder
- Entity view builder for entities that can be panelized.
Namespace
Drupal\panelizerCode
public function viewMultiple(array $entities = [], $view_mode = 'full', $langcode = NULL) {
$displays = $this
->collectRenderDisplays($entities, $view_mode);
$panelized_entities = [];
$fallback_entities = [];
foreach ($entities as $id => $entity) {
$display = $displays[$entity
->bundle()];
if ($this
->isPanelizerEnabled($display)) {
$panelized_entities[$id] = $entity;
}
else {
$fallback_entities[$id] = $entity;
}
}
$result = [];
if (!empty($fallback_entities)) {
$result += $this
->getFallbackViewBuilder()
->viewMultiple($fallback_entities, $view_mode, $langcode);
}
if (!empty($panelized_entities)) {
$result += $this
->buildMultiplePanelized($panelized_entities, $displays, $view_mode, $langcode);
}
return $result;
}