From 9d5d3b3b5cac64654a8ec6249cf831f281c9d48f Mon Sep 17 00:00:00 2001 From: Nathaniel Catchpole <catch@35733.no-reply.drupal.org> Date: Wed, 15 Oct 2014 11:05:01 +0100 Subject: [PATCH] Issue #2234331 by mortendk, lauriii, LewisNyman, sqndr, rteijeiro, G-raph, amitgoyal: Fixed Change the body classes to follow Drupal 8 CSS standards. --- core/includes/theme.inc | 60 ++++++++----------- core/modules/block/block.module | 2 +- core/themes/bartik/css/style.css | 19 +++--- core/themes/seven/css/layout/node-add.css | 5 +- core/themes/seven/css/theme/install-page.css | 2 +- .../seven/css/theme/maintenance-page.css | 8 +-- core/themes/seven/seven.theme | 12 ++++ 7 files changed, 55 insertions(+), 53 deletions(-) diff --git a/core/includes/theme.inc b/core/includes/theme.inc index 8c947e28604e..0a764798515f 100644 --- a/core/includes/theme.inc +++ b/core/includes/theme.inc @@ -1676,27 +1676,29 @@ function template_preprocess_html(&$variables) { $variables['page'] = $page; // Compile a list of classes that are going to be applied to the body element. - // This allows advanced theming based on context (home page, node of certain type, etc.). + // This allows advanced theming based on context (home page, node of certain + // type, etc.). $body_classes = $variables['attributes']['class']; - $body_classes[] = 'html'; - // Add a class that tells us whether we're on the front page or not. - $body_classes[] = $variables['is_front'] ? 'front' : 'not-front'; - // Add a class that tells us whether the page is viewed by an authenticated user or not. - $body_classes[] = $variables['logged_in'] ? 'logged-in' : 'not-logged-in'; - $variables['attributes']['class'] = $body_classes; - $path_args = explode('/', current_path()); - // Populate the body classes. - if ($suggestions = theme_get_suggestions($path_args, 'page', '-')) { - foreach ($suggestions as $suggestion) { - if ($suggestion != 'page-front') { - // Add current suggestion to page classes to make it possible to theme - // the page depending on the current page type (e.g. node, admin, user, - // etc.) as well as more specific data like node-12 or node-edit. - $variables['attributes']['class'][] = drupal_html_class($suggestion); - } - } + // Add a class that tells us whether the page is viewed by an authenticated + // user. + if ($variables['logged_in']) { + $body_classes[] = 'user-logged-in'; } + // Add a class that tells us what path the page is located make it possible + // to theme the page depending on the current path (e.g. node, admin, user, + // etc.) as well as more specific data like path-frontpage. + $path = \Drupal::request()->getPathInfo(); + + if (drupal_is_front_page()) { + $body_classes[] = 'path-frontpage'; + } + else { + $segment = explode('/', $path); + $body_classes[] = 'path-' . drupal_html_class($segment[1]); + } + + $variables['attributes']['class'] = $body_classes; $site_config = \Drupal::config('system.site'); // Construct page title. @@ -1786,15 +1788,6 @@ function template_preprocess_page(&$variables) { } } - // Set up layout variable. - $variables['layout'] = 'none'; - if (!empty($variables['page']['sidebar_first'])) { - $variables['layout'] = 'first'; - } - if (!empty($variables['page']['sidebar_second'])) { - $variables['layout'] = ($variables['layout'] == 'first') ? 'both' : 'second'; - } - $variables['base_path'] = base_path(); $variables['front_page'] = \Drupal::url('<front>'); $variables['language'] = $language_interface; @@ -1873,16 +1866,16 @@ function template_preprocess_page(&$variables) { */ function theme_get_suggestions($args, $base, $delimiter = '__') { - // Build a list of suggested theme hooks or body classes in order of + // Build a list of suggested theme hooks in order of // specificity. One suggestion is made for every element of the current path, // though numeric elements are not carried to subsequent suggestions. For // example, for $base='page', http://www.example.com/node/1/edit would result - // in the following suggestions and body classes: + // in the following suggestions: // - // page__node page-node - // page__node__% page-node-% - // page__node__1 page-node-1 - // page__node__edit page-node-edit + // page__node + // page__node__% + // page__node__1 + // page__node__edit $suggestions = array(); $prefix = $base; @@ -1937,7 +1930,6 @@ function template_preprocess_maintenance_page(&$variables) { $attributes = $page_object->getBodyAttributes(); $classes = $attributes['class']; $classes[] = 'maintenance-page'; - $classes[] = 'in-maintenance'; if (isset($variables['db_is_active']) && !$variables['db_is_active']) { $classes[] = 'db-offline'; } diff --git a/core/modules/block/block.module b/core/modules/block/block.module index 073da6afb66d..2d2c6797efa8 100644 --- a/core/modules/block/block.module +++ b/core/modules/block/block.module @@ -82,7 +82,7 @@ function block_page_build(&$page) { // Append region description if we are rendering the regions demo page. $visible_regions = array_keys(system_region_list($theme, REGIONS_VISIBLE)); foreach ($visible_regions as $region) { - $description = '<div class="block-region">' . $all_regions[$region] . '</div>'; + $description = '<div class="block-region demo-block">' . $all_regions[$region] . '</div>'; $page[$region]['block_description'] = array( '#markup' => $description, '#weight' => 15, diff --git a/core/themes/bartik/css/style.css b/core/themes/bartik/css/style.css index 3027fbbd03b4..c55134dd34cb 100644 --- a/core/themes/bartik/css/style.css +++ b/core/themes/bartik/css/style.css @@ -1820,14 +1820,18 @@ div.add-or-remove-shortcuts { } /* ---------- Admin-specific Theming ---------- */ - -.page-admin #content img { +.path-admin #content img { margin-right: 15px; /* LTR */ } -.page-admin #content .simpletest-image img { +.path-admin #content .simpletest-image img { margin: 0; } -.page-admin-structure-block-demo .block-region { +.path-admin #admin-dblog img { + margin: 0 5px; +} + +/* Block demo mode */ +.demo-block { background: #ffff66; border: 1px dotted #9f9e00; color: #000; @@ -1837,15 +1841,12 @@ div.add-or-remove-shortcuts { text-align: center; text-shadow: none; } -.page-admin-structure-block-demo #featured .block-region { +#featured .demo-block { font-size: 0.55em; } -.page-admin-structure-block-demo #header .block-region { +#header .demo-block { width: 500px; } -.page-admin #admin-dblog img { - margin: 0 5px; -} /* Configuration. */ div.admin .right, diff --git a/core/themes/seven/css/layout/node-add.css b/core/themes/seven/css/layout/node-add.css index 6bbe892c8057..7f5274aa3325 100644 --- a/core/themes/seven/css/layout/node-add.css +++ b/core/themes/seven/css/layout/node-add.css @@ -10,9 +10,7 @@ @media screen and (min-width: 780px), (orientation: landscape) and (min-device-height: 780px) { - - [class*="page-node-add-"] .messages, - .page-node-edit .messages { + .node-form-layout .messages { margin-top: 1em; margin-bottom: 1em; } @@ -20,7 +18,6 @@ @media screen and (max-width: 1020px), (orientation: landscape) and (max-device-height: 1020px) { - .toolbar-vertical .block-list-secondary, .toolbar-vertical .layout-region-node-secondary { margin-bottom: 0; diff --git a/core/themes/seven/css/theme/install-page.css b/core/themes/seven/css/theme/install-page.css index d114dac630c9..c9d124d8a344 100644 --- a/core/themes/seven/css/theme/install-page.css +++ b/core/themes/seven/css/theme/install-page.css @@ -3,7 +3,7 @@ * Installation styling. * * Unfortunately we have to make our styling quite strong, to override the - * .in-maintenance styling. + * .maintenance-page styling. */ .install-background { background-color: #1275b2; diff --git a/core/themes/seven/css/theme/maintenance-page.css b/core/themes/seven/css/theme/maintenance-page.css index 80b18f990a52..edf9018c39cb 100644 --- a/core/themes/seven/css/theme/maintenance-page.css +++ b/core/themes/seven/css/theme/maintenance-page.css @@ -13,7 +13,7 @@ /* Maintenance theming */ .install-page, -.in-maintenance { +.maintenance-page { background: none; } .page-title { @@ -131,13 +131,13 @@ html { display: table; } - .in-maintenance, - .install-page { + .install-page, + .maintenance-page { display: table-cell; padding: 1em 0; vertical-align: middle; } - html, .install-page, .in-maintenance { + html, .install-page, .maintenance-page { margin: 0; width: 100%; height: 100%; diff --git a/core/themes/seven/seven.theme b/core/themes/seven/seven.theme index 88c25704bbbf..4863525f60e4 100644 --- a/core/themes/seven/seven.theme +++ b/core/themes/seven/seven.theme @@ -208,3 +208,15 @@ function seven_form_node_form_alter(&$form, FormStateInterface $form_state) { $form['revision_information']['#type'] = 'container'; $form['revision_information']['#group'] = 'meta'; } + +function seven_preprocess_html(&$variables) { + // If on a node add or edit page, add a node-layout class. + $path_args = explode('/', \Drupal::request()->getPathInfo()); + if ($suggestions = theme_get_suggestions($path_args, 'page', '-')) { + foreach ($suggestions as $suggestion) { + if ($suggestion === 'page-node-edit' || strpos($suggestion, 'page-node-add') !== FALSE) { + $variables['attributes']['class'][] = drupal_html_class('node-form-layout'); + } + } + } +} -- GitLab