Форумчане, может туплю, подскажите:
Как в body добавить класс от дисплея представления?
Представление типа страница.
Хоть кодингом хоть модулями.
Rак добавить класс отображения вьюхи в body?
Главные вкладки
Лучший ответ
1
Спасибо!
Сделал так mytheme.theme:
function mytheme_preprocess_html(&$variables)
{
$route = \Drupal::routeMatch()->getRouteObject();
$view_id = $route->getDefault('view_id');
$display_id = $route->getDefault('display_id');
$variables['attributes']['class'][] = $view_id;
$variables['attributes']['class'][] = $display_id;
}
{
$route = \Drupal::routeMatch()->getRouteObject();
$view_id = $route->getDefault('view_id');
$display_id = $route->getDefault('display_id');
$variables['attributes']['class'][] = $view_id;
$variables['attributes']['class'][] = $display_id;
}
Комментарии
Можно модулем context.
Кодингом через hook_theme_suggestions_alter примеров использования можно нагуглить
Контекст - да работает, спасибо.
Но он слегка жирноват. Хотя альтернатив не вижу. Другие модули делают класс для страницы, а не для дисплея вьюхи.
hook_theme_suggestions_alter - ууу, пока сложно...
Чего сложного? Примеров полно в инете
Если я правильно понимаю через hook_theme_suggestions_alter предлагается темизировать html.html.twig по дисплею вьюхи?
Может какой-то preprocess_html лучше?
Да, я тупанул. Тут suggestions не нужно, а нужно препроцессить html.
Можно получить роут, если это поможет
$route_name = \Drupal::routeMatch()->getRouteName();
или просто порыться в $variables в поисках нужного за что можно зацепиться
Через theme_preprocess_html(&$variables) класс добавить можно, получить данные вьюса, например, так можно.
Спасибо!
Сделал так mytheme.theme:
{
$route = \Drupal::routeMatch()->getRouteObject();
$view_id = $route->getDefault('view_id');
$display_id = $route->getDefault('display_id');
$variables['attributes']['class'][] = $view_id;
$variables['attributes']['class'][] = $display_id;
}