diff --git a/core/modules/overlay/overlay.module b/core/modules/overlay/overlay.module
index 446d56c..60bf11f 100644
--- a/core/modules/overlay/overlay.module
+++ b/core/modules/overlay/overlay.module
@@ -77,6 +77,7 @@ function overlay_theme() {
),
'overlay_disable_message' => array(
'render element' => 'element',
+ 'template' => 'overlay-disable-message',
),
);
}
@@ -183,7 +184,9 @@ function overlay_init() {
* the supplemental regions of the overlay on the next page request.
*/
function overlay_exit() {
- // Check that we are in an overlay child page.
+ // Check that we are in an overlay child page. Note that this should never
+ // return TRUE on a cached page view, since the child mode is not set until
+ // overlay_init() is called.
if (overlay_get_mode() == 'child') {
// Load any markup that was stored earlier in the page request, via calls
// to overlay_store_rendered_content(). If none was stored, this is not a
@@ -439,44 +442,6 @@ function overlay_disable_message() {
}
/**
- * Returns the HTML for the message about how to disable the overlay.
- *
- * @param $variables
- * An associative array with an 'element' element, which itself is an
- * associative array containing:
- * - profile_link: The link to this user's account.
- * - dismiss_message_link: The link to dismiss the overlay.
- *
- * @ingroup themeable
- */
-function theme_overlay_disable_message($variables) {
- $element = $variables['element'];
-
- // Add CSS classes to hide the links from most sighted users, while keeping
- // them accessible to screen-reader users and keyboard-only users. To assist
- // screen-reader users, this message appears in both the parent and child
- // documents, but only the one in the child document is part of the tab order.
- foreach (array('profile_link', 'dismiss_message_link') as $key) {
- $element[$key]['#options']['attributes']['class'][] = 'element-invisible';
- if (overlay_get_mode() == 'child') {
- $element[$key]['#options']['attributes']['class'][] = 'element-focusable';
- }
- }
-
- // Render the links.
- $output = drupal_render($element['profile_link']) . ' ' . drupal_render($element['dismiss_message_link']);
-
- // Add a heading for screen-reader users. The heading doesn't need to be seen
- // by sighted users.
- $output = '
' . t('Options for the administrative overlay') . '
' . $output;
-
- // Wrap in a container for styling.
- $output = '' . $output . '
';
-
- return $output;
-}
-
-/**
* Implements hook_block_access().
*/
function overlay_block_access($block) {
@@ -547,6 +512,35 @@ function template_preprocess_overlay(&$variables) {
}
/**
+ * Prepares variables for overlay disable message templates.
+ *
+ * Default template: overlay-disable-message.html.twig.
+ *
+ * @param array $variables
+ * An associative array with an 'element' element, which itself is an
+ * associative array containing:
+ * - profile_link: The link to this user's account.
+ * - dismiss_message_link: The link to dismiss the overlay.
+ */
+function template_preprocess_overlay_disable_message(&$variables) {
+ $element = $variables['element'];
+
+ // Add CSS classes to hide the links from most sighted users, while keeping
+ // them accessible to screen-reader users and keyboard-only users. To assist
+ // screen-reader users, this message appears in both the parent and child
+ // documents, but only the one in the child document is part of the tab order.
+ foreach (array('profile_link', 'dismiss_message_link') as $key) {
+ $element[$key]['#options']['attributes']['class'][] = 'element-invisible';
+ if (overlay_get_mode() == 'child') {
+ $element[$key]['#options']['attributes']['class'][] = 'element-focusable';
+ }
+ }
+
+ $variables['profile_link'] = $element['profile_link'];
+ $variables['dismiss_link'] = $element['dismiss_message_link'];
+}
+
+/**
* Implements template_process_HOOK() for overlay.tpl.php
*
* Places the rendered HTML for the page body into a top level variable.
diff --git a/core/modules/overlay/templates/overlay-disable-message.html.twig b/core/modules/overlay/templates/overlay-disable-message.html.twig
new file mode 100644
index 0000000..fe38cb1
--- /dev/null
+++ b/core/modules/overlay/templates/overlay-disable-message.html.twig
@@ -0,0 +1,19 @@
+{#
+/**
+ * @file
+ * Default theme implementation for the message about disabling the overlay.
+ *
+ * Available variables:
+ * - profile_link: The link to this user's account.
+ * - dismiss_link: The link to dismiss the overlay.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_overlay_disable_message()
+ *
+ * @ingroup themeable
+ */
+#}
+
+
{{ "Options for the administrative overlay"|t }}
+ {{ profile_link }} {{ dismiss_link }}
+
diff --git a/core/modules/overlay/templates/overlay.html.twig b/core/modules/overlay/templates/overlay.html.twig
new file mode 100644
index 0000000..fb54432
--- /dev/null
+++ b/core/modules/overlay/templates/overlay.html.twig
@@ -0,0 +1,34 @@
+{#
+/**
+ * @file
+ * Default theme implementation to display a page in the overlay.
+ *
+ * Available variables:
+ * - title: The (sanitized) title of the page.
+ * - page: The rendered page content.
+ * - tabs: Tabs linking to any sub-pages beneath the current page (e.g., the
+ * view and edit tabs when displaying a node).
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_overlay()
+ *
+ * @ingroup themeable
+ */
+#}
+{{ disable_overlay }}
+
+
+
+
{{ title }}
+
+
+ {% if tabs %}
+
{{ 'Primary tabs'|t }}
+ {% endif %}
+
+
+ {{ page }}
+
+
diff --git a/core/modules/overlay/templates/overlay.tpl.php b/core/modules/overlay/templates/overlay.tpl.php
deleted file mode 100644
index 2b342ba..0000000
--- a/core/modules/overlay/templates/overlay.tpl.php
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-