Lab / Drupal 8

Drupal 8: Добавить NID и тип материала в класс <body>

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

В этой короткой заметке я покажу вам как восстановить справедливость и вернуть эти классы в тег <body> в папке вашей тебы создайте файл: имя_темы.theme и поместите туда следующее содержимое:

<?php 

/**
 * Implements hook_preprocess_html().
 */

function trans_preprocess_html(&$variables) {
 if ($node = \Drupal::request()->attributes->get('node')) {
 $variables['attributes']['class'][] = 'page-node-' . $node->id();
 $variables['attributes']['class'][] = 'page-' . $node->bundle();
 }
}

Как вы наверное уже догадались все значения мы получаем из объекта массива $node там вы можете найти больше значений которые вы так же можете передать в класс <body>