You are here

function node_preprocess_field__node in Drupal 9

Implements hook_preprocess_HOOK() for node field templates.

File

core/modules/node/node.module, line 435
The core module that allows content to be submitted to the site.

Code

function node_preprocess_field__node(&$variables) {

  // Set a variable 'is_inline' in cases where inline markup is required,
  // without any block elements such as <div>.
  if ($variables['element']['#is_page_title'] ?? FALSE) {

    // Page title is always inline because it will be displayed inside <h1>.
    $variables['is_inline'] = TRUE;
  }
  elseif (in_array($variables['field_name'], [
    'created',
    'uid',
    'title',
  ], TRUE)) {

    // Display created, uid and title fields inline because they will be
    // displayed inline by node.html.twig. Skip this if the field
    // display is configurable and skipping has been enabled.
    // @todo Delete as part of https://www.drupal.org/node/3015623

    /** @var \Drupal\node\NodeInterface $node */
    $node = $variables['element']['#object'];
    $skip_custom_preprocessing = $node
      ->getEntityType()
      ->get('enable_base_field_custom_preprocess_skipping');
    $variables['is_inline'] = !$skip_custom_preprocessing || !$node
      ->getFieldDefinition($variables['field_name'])
      ->isDisplayConfigurable('view');
  }
}