protected function LayoutBuilderEntityViewDisplay::buildSections in Drupal 9
Same name and namespace in other branches
- 8 core/modules/layout_builder/src/Entity/LayoutBuilderEntityViewDisplay.php \Drupal\layout_builder\Entity\LayoutBuilderEntityViewDisplay::buildSections()
Builds the render array for the sections of a given entity.
Parameters
\Drupal\Core\Entity\FieldableEntityInterface $entity: The entity.
Return value
array The render array representing the sections of the entity.
1 call to LayoutBuilderEntityViewDisplay::buildSections()
- LayoutBuilderEntityViewDisplay::buildMultiple in core/
modules/ layout_builder/ src/ Entity/ LayoutBuilderEntityViewDisplay.php - Builds a renderable array for the components of a set of entities.
File
- core/
modules/ layout_builder/ src/ Entity/ LayoutBuilderEntityViewDisplay.php, line 303
Class
- LayoutBuilderEntityViewDisplay
- Provides an entity view display entity that has a layout.
Namespace
Drupal\layout_builder\EntityCode
protected function buildSections(FieldableEntityInterface $entity) {
$contexts = $this
->getContextsForEntity($entity);
// @todo Remove in https://www.drupal.org/project/drupal/issues/3018782.
$label = new TranslatableMarkup('@entity being viewed', [
'@entity' => $entity
->getEntityType()
->getSingularLabel(),
]);
$contexts['layout_builder.entity'] = EntityContext::fromEntity($entity, $label);
$cacheability = new CacheableMetadata();
$storage = $this
->sectionStorageManager()
->findByContext($contexts, $cacheability);
$build = [];
if ($storage) {
foreach ($storage
->getSections() as $delta => $section) {
$build[$delta] = $section
->toRenderArray($contexts);
}
}
// The render array is built based on decisions made by @SectionStorage
// plugins and therefore it needs to depend on the accumulated
// cacheability of those decisions.
$cacheability
->applyTo($build);
return $build;
}