function hook_entity_prepare_view
Same name in other branches
- 7.x modules/system/system.api.php \hook_entity_prepare_view()
- 8.9.x core/lib/Drupal/Core/Entity/entity.api.php \hook_entity_prepare_view()
- 10 core/lib/Drupal/Core/Entity/entity.api.php \hook_entity_prepare_view()
- 11.x core/lib/Drupal/Core/Entity/entity.api.php \hook_entity_prepare_view()
Act on entities as they are being prepared for view.
Allows you to operate on multiple entities as they are being prepared for view. Only use this if attaching the data during the entity loading phase is not appropriate, for example when attaching other 'entity' style objects.
Parameters
string $entity_type_id: The type of entities being viewed (i.e. node, user, comment).
array $entities: The entities keyed by entity ID.
\Drupal\Core\Entity\Display\EntityViewDisplayInterface[] $displays: The array of entity view displays holding the display options configured for the entity components, keyed by bundle name.
string $view_mode: The view mode.
Related topics
2 functions implement hook_entity_prepare_view()
Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.
- entity_test_entity_prepare_view in core/
modules/ system/ tests/ modules/ entity_test/ entity_test.module - Implements hook_entity_prepare_view().
- rdf_entity_prepare_view in core/
modules/ rdf/ rdf.module - Implements hook_entity_prepare_view().
1 invocation of hook_entity_prepare_view()
- EntityViewBuilder::buildComponents in core/
lib/ Drupal/ Core/ Entity/ EntityViewBuilder.php - Builds the component fields and properties of a set of entities.
File
-
core/
lib/ Drupal/ Core/ Entity/ entity.api.php, line 1666
Code
function hook_entity_prepare_view($entity_type_id, array $entities, array $displays, $view_mode) {
// Load a specific node into the user object for later theming.
if (!empty($entities) && $entity_type_id == 'user') {
// Only do the extra work if the component is configured to be
// displayed. This assumes a 'mymodule_addition' extra field has been
// defined for the entity bundle in hook_entity_extra_field_info().
$ids = [];
foreach ($entities as $id => $entity) {
if ($displays[$entity->bundle()]
->getComponent('mymodule_addition')) {
$ids[] = $id;
}
}
if ($ids) {
$nodes = mymodule_get_user_nodes($ids);
foreach ($ids as $id) {
$entities[$id]->user_node = $nodes[$id];
}
}
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.