diff --git a/core/modules/node/node.module b/core/modules/node/node.module index ea27e269b2aa9cc8e4f76b722a6b5a64c0ca38d0..818fc899ac30b075c0a34b8f53c8087aa2a0ba9c 100644 --- a/core/modules/node/node.module +++ b/core/modules/node/node.module @@ -547,9 +547,12 @@ function template_preprocess_node_add_list(&$variables) { * Implements hook_preprocess_HOOK() for HTML document templates. */ function node_preprocess_html(&$variables) { - // If on an individual node page, add the node type to body classes. - if (($node = \Drupal::routeMatch()->getParameter('node')) && $node instanceof NodeInterface) { - $variables['node_type'] = $node->getType(); + // If on an individual node page or node preview page, add the node type to + // the body classes. + if (($node = \Drupal::routeMatch()->getParameter('node')) || ($node = \Drupal::routeMatch()->getParameter('node_preview'))) { + if ($node instanceof NodeInterface) { + $variables['node_type'] = $node->getType(); + } } } diff --git a/core/modules/node/src/Tests/PagePreviewTest.php b/core/modules/node/src/Tests/PagePreviewTest.php index bcbe5d7a2acf94c4f3711a51ba7458405c1b4d49..2bc9cd3ce1e00c266a45d0d1dc34e6d797cb9bca 100644 --- a/core/modules/node/src/Tests/PagePreviewTest.php +++ b/core/modules/node/src/Tests/PagePreviewTest.php @@ -183,6 +183,10 @@ public function testPagePreview() { $this->assertText($edit[$term_key], 'Term displayed.'); $this->assertLink(t('Back to content editing')); + // Check that we see the class of the node type on the body element. + $body_class_element = $this->xpath("//body[contains(@class, 'page-node-type-page')]"); + $this->assertTrue(!empty($body_class_element), 'Node type body class found.'); + // Get the UUID. $url = parse_url($this->getUrl()); $paths = explode('/', $url['path']);