function NodeTestHooks::nodeView

Implements hook_ENTITY_TYPE_view() for node entities.

File

core/modules/node/tests/modules/node_test/src/Hook/NodeTestHooks.php, line 22

Class

NodeTestHooks
Hook implementations for node_test.

Namespace

Drupal\node_test\Hook

Code

public function nodeView(array &$build, NodeInterface $node, EntityViewDisplayInterface $display, $view_mode) {
    if ($node->isNew()) {
        return;
    }
    if ($view_mode == 'rss') {
        // Add RSS elements and namespaces when building the RSS feed.
        $node->rss_elements[] = [
            'key' => 'testElement',
            'value' => t('Value of testElement RSS element for node @nid.', [
                '@nid' => $node->id(),
            ]),
        ];
        // Add content that should be displayed only in the RSS feed.
        $build['extra_feed_content'] = [
            '#markup' => '<p>' . t('Extra data that should appear only in the RSS feed for node @nid.', [
                '@nid' => $node->id(),
            ]) . '</p>',
            '#weight' => 10,
        ];
    }
    if ($view_mode != 'rss') {
        // Add content that should NOT be displayed in the RSS feed.
        $build['extra_non_feed_content'] = [
            '#markup' => '<p>' . t('Extra data that should appear everywhere except the RSS feed for node @nid.', [
                '@nid' => $node->id(),
            ]) . '</p>',
        ];
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.