Mercurial > hg > isophonics-drupal-site
diff core/lib/Drupal/Core/Render/BareHtmlPageRendererInterface.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/lib/Drupal/Core/Render/BareHtmlPageRendererInterface.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,62 @@ +<?php + +namespace Drupal\Core\Render; + +/** + * Bare HTML page renderer. + * + * By "bare HTML page", we mean that the following hooks that allow for "normal" + * pages are not invoked: + * - hook_page_attachments() + * - hook_page_attachments_alter() + * - hook_page_top() + * - hook_page_bottom() + * + * Examples of bare HTML pages are: + * - install.php + * - update.php + * - authorize.php + * - maintenance mode + * - exception handlers + * + * i.e. use this when rendering HTML pages in limited environments. Otherwise, + * use a @code _controller @endcode route, and return a render array. + * This will cause a main content renderer + * (\Drupal\Core\Render\MainContent\MainContentRendererInterface) to be + * used, and in case of a HTML request that will be + * \Drupal\Core\Render\MainContent\HtmlRenderer. + * + * In fact, this is not only *typically* used in a limited environment, it even + * *must* be used in a limited environment: when using the bare HTML page + * renderer, use as little state/additional services as possible, because the + * same safeguards aren't present (precisely because this is intended to be used + * in a limited environment). + * + * Currently, there are two types of bare pages available: + * - Install (hook_preprocess_install_page(), install-page.html.twig). + * - Maintenance (hook_preprocess_maintenance_page(), + * maintenance-page.html.twig). + * + * @see \Drupal\Core\Render\MainContent\HtmlRenderer + */ +interface BareHtmlPageRendererInterface { + + /** + * Renders a bare page. + * + * @param array $content + * The main content to render in the 'content' region. + * @param string $title + * The title for this maintenance page. + * @param string $page_theme_property + * The #theme property to set on #type 'page'. + * @param array $page_additions + * Additional regions to add to the page. May also be used to pass the + * #show_messages property for #type 'page'. + * + * @return \Drupal\Core\Render\HtmlResponse + * The rendered HTML response, ready to be sent. + */ + public function renderBarePage(array $content, $title, $page_theme_property, array $page_additions = []); + +}