Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. NodeViewBuilder.php

function NodeViewBuilder::buildComponents

Overrides EntityViewBuilder::buildComponents

File

core/modules/node/src/NodeViewBuilder.php, line 18

Class

NodeViewBuilder
View builder handler for nodes.

Namespace

Drupal\node

Code

public function buildComponents(array &$build, array $entities, array $displays, $view_mode) {
    
    /** @var \Drupal\node\NodeInterface[] $entities */
    if (empty($entities)) {
        return;
    }
    parent::buildComponents($build, $entities, $displays, $view_mode);
    foreach ($entities as $id => $entity) {
        $bundle = $entity->bundle();
        $display = $displays[$bundle];
        if ($display->getComponent('links')) {
            $build[$id]['links'] = [
                '#lazy_builder' => [
                    static::class . '::renderLinks',
                    [
                        $entity->id(),
                        $view_mode,
                        $entity->language()
                            ->getId(),
                        !empty($entity->in_preview),
                        $entity->isDefaultRevision() ? NULL : $entity->getLoadedRevisionId(),
                    ],
                ],
            ];
        }
        // Add Language field text element to node render array.
        if ($display->getComponent('langcode')) {
            $build[$id]['langcode'] = [
                '#type' => 'item',
                '#title' => t('Language'),
                '#markup' => $entity->language()
                    ->getName(),
                '#prefix' => '<div id="field-language-display">',
                '#suffix' => '</div>',
            ];
        }
    }
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal