Пример #1
0
/**
 * 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];
            }
        }
    }
}
Пример #2
0
/**
 * 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];
        }
    }
}