/** * 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. * * @param string $entity_type_id * The type of entities being viewed (i.e. node, user, comment). * @param array $entities * The entities keyed by entity ID. * @param \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. * @param string $view_mode * The view mode. * * @ingroup entity_crud */ 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 = array(); 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]; } } } }
/** * 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_load() phase * is not appropriate, for example when attaching other 'entity' style objects. * * @param $entities * The entities keyed by entity ID. * @param $type * The type of entities being loaded (i.e. node, user, comment). * @param $langcode * The language to display the entity in. */ function hook_entity_prepare_view($entities, $type, $langcode) { // Load a specific node into the user object for later theming. if ($type == 'user') { $nodes = mymodule_get_user_nodes(array_keys($entities)); foreach ($entities as $uid => $entity) { $entity->user_node = $nodes[$uid]; } } }