function HtmlRenderer::buildPageTopAndBottom

Same name in other branches
  1. 8.9.x 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()
  3. 11.x 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 349

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;
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.