diff --git a/core/lib/Drupal/Core/Entity/Controller/EntityViewController.php b/core/lib/Drupal/Core/Entity/Controller/EntityViewController.php index 1ef63b8..5f5ae42 100644 --- a/core/lib/Drupal/Core/Entity/Controller/EntityViewController.php +++ b/core/lib/Drupal/Core/Entity/Controller/EntityViewController.php @@ -60,10 +60,10 @@ public static function create(ContainerInterface $container) { * Pre-render callback to build the page title. * * @param array $page - * A render array. + * A page render array. * * @return array - * The changed render array. + * The changed page render array. */ public function buildTitle(array $page) { $entity_type = $page['#entity_type']; @@ -74,8 +74,8 @@ public function buildTitle(array $page) { // correctly (e.g. RDFa, in-place editing). if ($entity instanceof FieldableEntityInterface) { $label_field = $entity->getEntityType()->getKey('label'); - if (isset($page[$label_field]) && $title = $this->renderer->render($page[$label_field])) { - $page['#title'] = $title; + if (isset($page[$label_field])) { + $page['#title'] = $this->renderer->render($page[$label_field]); } } return $page; @@ -103,7 +103,7 @@ public function view(EntityInterface $_entity, $view_mode = 'full', $langcode = ->getViewBuilder($_entity->getEntityTypeId()) ->view($_entity, $view_mode, $langcode); - $page['#pre_render'][] = array($this, 'buildTitle'); + $page['#pre_render'][] = [$this, 'buildTitle']; $page['#entity_type'] = $_entity->getEntityTypeId(); diff --git a/core/modules/node/src/Controller/NodePreviewController.php b/core/modules/node/src/Controller/NodePreviewController.php index 030a0d4..093d0f5 100644 --- a/core/modules/node/src/Controller/NodePreviewController.php +++ b/core/modules/node/src/Controller/NodePreviewController.php @@ -63,8 +63,11 @@ public function view(EntityInterface $node_preview, $view_mode_id = 'full', $lan * The changed render array. */ public function buildPreviewTitle(array $build) { - $build['nodes'] = call_user_func($build['nodes']['#pre_render'][0], $build['nodes']); - $build['nodes'] = call_user_func($build['nodes']['#pre_render'][1], $build['nodes']); + // Apply the #pre_render methods so things like #title is available. + // @see \Drupal\Core\Entity\Controller\EntityViewController::buildTitle + foreach ($build['nodes']['#pre_render'] as $pre_render) { + $build['nodes'] = call_user_func($pre_render, $build['nodes']); + } $build['#title'] = $build['nodes']['#title']; return $build;