Добавляем класс сущности к элементу body Drupal 8

18-05-2020

Некоторые готовые темы для Drupal 8 не всегда предусматривают определенные настройки или удобства для дальнейшей работы с темой. Но это всегда можно исправить или точнее дополнить функционал, если вы, как и я, часто разрабатываете темы с нуля.

Рассмотрим добавление небольшого удобства для стилизации с помощью CSS выбранной страницы. А именно добавим класс нашему элементу body. Этот класс будем брать из системного идентификатора ноды.

Данный код помещаем в файл MYTHEME.theme вашей темы. ВНИМАНИЕ! Не забываем сменить MYTHEME на имя вашей темы, иначе код не будет работать!

function MYTHEME_preprocess_html(&$variables) {
  // Add node-TYPE class to the element.
  if (isset($variables['node_type'])) {
    $node = \Drupal::routeMatch()->getParameter('node');
    $variables['attributes']['class'][] = 'page-node-' . $node->getType();
    $variables['attributes']['class'][] = 'page-node-' . $node->id();
  }
}

После добавления кода ОБЯЗАТЕЛЬНО почистить КЕШ!

После этого, если вы посмотрите код, к элементу body добавится класс:

<body class="page-node-X">

На этом всё. Успехов вам в темизации!

Похожие статьи