function CommentThemeHooks::preprocessField

Same name and namespace in other branches
  1. 11.x core/modules/comment/src/Hook/CommentThemeHooks.php \Drupal\comment\Hook\CommentThemeHooks::preprocessField()

Implements hook_preprocess_HOOK() for field templates.

Prepares variables for comment field templates.

Default template: field--comment.html.twig.

@todo Rename to preprocess_field__comment() once https://www.drupal.org/node/3566850 is resolved.

Attributes

#[Hook('preprocess_field')]

Parameters

array $variables: An associative array containing:

  • element: An associative array containing render arrays for the list of comments, and the comment form. Array keys: comments, comment_form.

File

core/modules/comment/src/Hook/CommentThemeHooks.php, line 220

Class

CommentThemeHooks
Hook implementations for comment.

Namespace

Drupal\comment\Hook

Code

public function preprocessField(&$variables) : void {
  $element = $variables['element'];
  // We need to check for the field type even though we are using the comment
  // theme hook suggestion. This is because there may be a bundle or field
  // with the same name.
  if ($element['#field_type'] == 'comment') {
    // Provide contextual information.
    $variables['comment_display_mode'] = $element[0]['#comment_display_mode'];
    $variables['comment_type'] = $element[0]['#comment_type'];
    // Append additional attributes from the first field item.
    $variables['attributes'] += $variables['items'][0]['attributes']->storage();
    // Create separate variables for the comments and comment form.
    $variables['comments'] = $element[0]['comments'];
    $variables['comment_form'] = $element[0]['comment_form'];
  }
}

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