diff --git a/core/modules/overlay/overlay.module b/core/modules/overlay/overlay.module index cc29255..13348a5 100644 --- a/core/modules/overlay/overlay.module +++ b/core/modules/overlay/overlay.module @@ -183,7 +183,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 @@ -546,6 +548,36 @@ function template_preprocess_overlay(&$variables) { } /** + * Preprocess variables 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 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'; + } + } + + // Render the links. + $variables['profile_link'] = drupal_render($element['profile_link']); + $variables['dismiss_link'] = drupal_render($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..4b9c38a --- /dev/null +++ b/core/modules/overlay/templates/overlay-disable-message.html.twig @@ -0,0 +1,20 @@ +{# +/** + * @file + * Default theme implementation for the message about how to disable the overlay. + * + * Available variables: + * - attributes: An array of element attributes. + * - profile_link: Rendered link. + * - dismiss_link: Rendered link to disable the message. + * + * @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..ac205f3 --- /dev/null +++ b/core/modules/overlay/templates/overlay.html.twig @@ -0,0 +1,35 @@ +{# +/** + * @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 38e6664..0000000 --- a/core/modules/overlay/templates/overlay.tpl.php +++ /dev/null @@ -1,38 +0,0 @@ - - - -
> -
-
-

>

-
-
- -
-

-
-
> - -
-