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..4c03062 --- /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: 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..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 @@ - - - -
> -
-
-

>

-
-
- -
-

-
-
> - -
-