You are here

public function HtmlRenderer::buildPageTopAndBottom in Drupal 9

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php \Drupal\Core\Render\MainContent\HtmlRenderer::buildPageTopAndBottom()
  2. 10 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 345

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 = [];
  foreach ($this->moduleHandler
    ->getImplementations('page_top') as $module) {
    $function = $module . '_page_top';
    $function($page_top);
  }
  foreach ($this->moduleHandler
    ->getImplementations('page_bottom') as $module) {
    $function = $module . '_page_bottom';
    $function($page_bottom);
  }
  if (!empty($page_top)) {
    $html['page_top'] = $page_top;
  }
  if (!empty($page_bottom)) {
    $html['page_bottom'] = $page_bottom;
  }
}