У вас уже есть все, что вам нужно в выводе.
Многие дороги ведут в Рим
Если themes/marineat
является вашей базовой темой, просто скопируйте themes/marinenat/templates/layout/region--header.html.twig
в themes/MYSUBTHEME/templates
вашей подтемы.каталог и отредактируйте этот файл.Очистить кеш.Готово.
Если themes/marinenat
- это пользовательская подтема, просто отредактируйте предложенный файл шаблона /themes/marinenat/templates/layout/region--header.html.twig/
и добавьте туда свой класс.Очистить кеш.Готово.
Наконец, но не в последнюю очередь, вы также можете добавить классы в регион из функции предварительной обработки из вашего файла MYSUBTHEME.theme
или из любого файла MYMODULE.module
.
/**
* Implements template_preprocess_region().
*/
function MYTHEME/MYMODULE_preprocess_region(&$variables) {
if (isset($variables['region']) && $variables['region'] == 'header') {
$variables['attributes']['class'][] = 'MYCLASS';
}
}
Какпередать строку из PHP в Twig
/**
* Implements template_preprocess_region().
*/
function MYTHEME/MYMODULE_preprocess_region(&$variables) {
$variables['foo'] = FALSE;
if (isset($variables['region']) && $variables['region'] == 'header') {
// Get the current node.
$node = \Drupal::routeMatch()->getParameter('node');
if ($node instanceof \Drupal\node\NodeInterface) {
// Get the node type.
$node_type = $node->bundle();
// Do what ever else you need to do to retrieve your class dynamically.
$variables['foo'] = $node_type;
}
}
}
Затем в вашем файле region--header.html.twig
Twig это:
{% if foo %}
<div class="nav {{ foo }}">
{{ content }}
</div>
{% endif %}