public function ExtraFieldDisplayManager::entityView in Extra Field 8
Same name and namespace in other branches
- 8.2 src/Plugin/ExtraFieldDisplayManager.php \Drupal\extra_field\Plugin\ExtraFieldDisplayManager::entityView()
Appends the renderable data from ExtraField plugins to hook_entity_view().
Parameters
array &$build: A renderable array representing the entity content. The module may add elements to $build prior to rendering. The structure of $build is a renderable array as expected by drupal_render().
\Drupal\Core\Entity\ContentEntityInterface $entity: The entity object.
\Drupal\Core\Entity\Display\EntityViewDisplayInterface $display: The entity view display holding the display options configured for the entity components.
string $viewMode: The view mode the entity is rendered in.
Overrides ExtraFieldDisplayManagerInterface::entityView
File
- src/
Plugin/ ExtraFieldDisplayManager.php, line 84
Class
- ExtraFieldDisplayManager
- Manages Extra Field plugins.
Namespace
Drupal\extra_field\PluginCode
public function entityView(array &$build, ContentEntityInterface $entity, EntityViewDisplayInterface $display, $viewMode) {
$definitions = $this
->getDefinitions();
$entityBundleKey = $this
->entityBundleKey($entity
->getEntityTypeId(), $entity
->bundle());
foreach ($definitions as $pluginId => $definition) {
if ($this
->matchEntityBundleKey($definition['bundles'], $entityBundleKey)) {
$factory = $this
->getFactory();
if ($display
->getComponent($this
->fieldName($pluginId))) {
/** @var ExtraFieldDisplayInterface $plugin */
$plugin = $factory
->createInstance($pluginId);
$fieldName = $this
->fieldName($pluginId);
$plugin
->setEntity($entity);
$plugin
->setEntityViewDisplay($display);
$plugin
->setViewMode($viewMode);
$elements = $plugin
->view($entity);
if (!empty($elements)) {
$build[$fieldName] = $elements;
}
}
}
}
}