Mercurial > hg > isophonics-drupal-site
view core/lib/Drupal/Core/Render/BareHtmlPageRenderer.php @ 13:5fb285c0d0e3
Update Drupal core to 8.4.7 via Composer. Security update; I *think* we've
been lucky to get away with this so far, as we don't support self-registration
which seems to be used by the so-called "drupalgeddon 2" attack that 8.4.5
was vulnerable to.
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:33:26 +0100 |
parents | 4c8ae668cc8c |
children |
line wrap: on
line source
<?php namespace Drupal\Core\Render; /** * Default bare HTML page renderer. */ class BareHtmlPageRenderer implements BareHtmlPageRendererInterface { /** * The renderer service. * * @var \Drupal\Core\Render\Renderer */ protected $renderer; /** * The HTML response attachments processor service. * * @var \Drupal\Core\Render\AttachmentsResponseProcessorInterface */ protected $htmlResponseAttachmentsProcessor; /** * Constructs a new BareHtmlPageRenderer. * * @param \Drupal\Core\Render\RendererInterface $renderer * The renderer service. * @param \Drupal\Core\Render\AttachmentsResponseProcessorInterface $html_response_attachments_processor * The HTML response attachments processor service. */ public function __construct(RendererInterface $renderer, AttachmentsResponseProcessorInterface $html_response_attachments_processor) { $this->renderer = $renderer; $this->htmlResponseAttachmentsProcessor = $html_response_attachments_processor; } /** * {@inheritdoc} */ public function renderBarePage(array $content, $title, $page_theme_property, array $page_additions = []) { $attributes = [ 'class' => [ str_replace('_', '-', $page_theme_property), ], ]; $html = [ '#type' => 'html', '#attributes' => $attributes, 'page' => [ '#type' => 'page', '#theme' => $page_theme_property, '#title' => $title, 'content' => $content, ] + $page_additions, ]; // For backwards compatibility. // @todo In Drupal 9, add a $show_messages function parameter. if (!isset($page_additions['#show_messages']) || $page_additions['#show_messages'] === TRUE) { $html['page']['highlighted'] = ['#type' => 'status_messages']; } // Add the bare minimum of attachments from the system module and the // current maintenance theme. system_page_attachments($html['page']); $this->renderer->renderRoot($html); $response = new HtmlResponse(); $response->setContent($html); // Process attachments, because this does not go via the regular render // pipeline, but will be sent directly. $response = $this->htmlResponseAttachmentsProcessor->processAttachments($response); return $response; } }