You are here

protected function CommentViewBuilder::getBuildDefaults in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/comment/src/CommentViewBuilder.php \Drupal\comment\CommentViewBuilder::getBuildDefaults()
  2. 9 core/modules/comment/src/CommentViewBuilder.php \Drupal\comment\CommentViewBuilder::getBuildDefaults()

Provides entity-specific defaults to the build process.

Parameters

\Drupal\Core\Entity\EntityInterface $entity: The entity for which the defaults should be provided.

string $view_mode: The view mode that should be used.

Return value

array

Overrides EntityViewBuilder::getBuildDefaults

File

core/modules/comment/src/CommentViewBuilder.php, line 78

Class

CommentViewBuilder
View builder handler for comments.

Namespace

Drupal\comment

Code

protected function getBuildDefaults(EntityInterface $entity, $view_mode) {
  $build = parent::getBuildDefaults($entity, $view_mode);

  /** @var \Drupal\comment\CommentInterface $entity */

  // Store a threading field setting to use later in self::buildComponents().
  $commented_entity = $entity
    ->getCommentedEntity();
  $build['#comment_threaded'] = is_null($commented_entity) || $commented_entity
    ->getFieldDefinition($entity
    ->getFieldName())
    ->getSetting('default_mode') === CommentManagerInterface::COMMENT_MODE_THREADED;

  // If threading is enabled, don't render cache individual comments, but do
  // keep the cacheability metadata, so it can bubble up.
  if ($build['#comment_threaded']) {
    unset($build['#cache']['keys']);
  }
  return $build;
}