diff --git a/core/lib/Drupal/Core/Entity/EntityViewBuilder.php b/core/lib/Drupal/Core/Entity/EntityViewBuilder.php index bb375ad..ae23831 100644 --- a/core/lib/Drupal/Core/Entity/EntityViewBuilder.php +++ b/core/lib/Drupal/Core/Entity/EntityViewBuilder.php @@ -283,6 +283,8 @@ public function viewMultiple(array $entities = array(), $view_mode = 'full', $la // Set defaults for #pre_render. $build[$key] += $this->getBuildDefaults($entity, $view_mode, $langcode); + \Drupal::moduleHandler()->alter(array('entity_defaults'), $build[$key], $entity, $view_mode, $langcode); + $build[$key]['#weight'] = $weight++; } diff --git a/core/modules/comment/comment.module b/core/modules/comment/comment.module index 51d0561..93bd88c 100644 --- a/core/modules/comment/comment.module +++ b/core/modules/comment/comment.module @@ -14,6 +14,7 @@ use Drupal\Core\Entity\EntityChangedInterface; use Drupal\comment\CommentInterface; use Drupal\Core\Entity\Display\EntityViewDisplayInterface; +use Drupal\entity\Entity\EntityViewDisplay; use Drupal\field\FieldInstanceConfigInterface; use Drupal\field\FieldConfigInterface; use Drupal\file\FileInterface; @@ -389,20 +390,22 @@ function comment_new_page_count($num_comments, $new_replies, EntityInterface $en } /** - * Implements hook_entity_view_alter(). + * Implements hook_entity_defaults_alter(). */ -function comment_entity_view_alter(&$build, EntityInterface $entity, EntityViewDisplayInterface $display) { +function comment_entity_defaults_alter(array &$build, EntityInterface $entity, $view_mode = 'full', $langcode = NULL) { + // Get the corresponding display settings. + $display = EntityViewDisplay::collectRenderDisplay($entity, $view_mode); // Add the comment page number to the cache key if render caching is enabled. if (isset($build['#cache']) && isset($build['#cache']['keys']) && \Drupal::request()->query->has('page')) { foreach ($entity->getFieldDefinitions() as $field_name => $definition) { - if (isset($build[$field_name]) && $definition->getType() === 'comment') { - $display_options = $display->getComponent($field_name); + if ($definition->getType() === 'comment' && ($display_options = $display->getComponent($field_name))) { $pager_id = $display_options['settings']['pager_id']; $page = pager_find_page($pager_id); $build['#cache']['keys'][] = $field_name . '-pager-' . $page; } } } + return $build; } /**