You are here

public function HtmlRenderer::buildPageTopAndBottom in Drupal 10

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php \Drupal\Core\Render\MainContent\HtmlRenderer::buildPageTopAndBottom()
  2. 9 core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php \Drupal\Core\Render\MainContent\HtmlRenderer::buildPageTopAndBottom()

Invokes the page top and bottom hooks.

@internal

Parameters

array &$html: A #type 'html' render array, for which the page top and bottom hooks will be invoked, and to which the 'page_top' and 'page_bottom' children (also render arrays) will be added (if non-empty).

Throws

\LogicException

See also

hook_page_top()

hook_page_bottom()

html.html.twig

1 call to HtmlRenderer::buildPageTopAndBottom()
HtmlRenderer::renderResponse in core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php
The entire HTML: takes a #type 'page' and wraps it in a #type 'html'.

File

core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php, line 343

Class

HtmlRenderer
Default main content renderer for HTML requests.

Namespace

Drupal\Core\Render\MainContent

Code

public function buildPageTopAndBottom(array &$html) {

  // Modules can add render arrays to the top and bottom of the page.
  $page_top = [];
  $page_bottom = [];
  $this->moduleHandler
    ->invokeAllWith('page_top', function (callable $hook, string $module) use (&$page_top) {
    $hook($page_top);
  });
  $this->moduleHandler
    ->invokeAllWith('page_bottom', function (callable $hook, string $module) use (&$page_bottom) {
    $hook($page_bottom);
  });
  if (!empty($page_top)) {
    $html['page_top'] = $page_top;
  }
  if (!empty($page_bottom)) {
    $html['page_bottom'] = $page_bottom;
  }
}