Добавление класса в " body"
Как я могу изменить или предварительно обработать <body>
тег для добавления тела класса? Я не хочу создавать весь html.ТПЛ.php просто добавить класс.
7 ответов
В использовать preprocess_html
припев:
function mytheme_preprocess_html(&$vars) {
$vars['classes_array'][] = 'new-class';
}
не забудьте очистить кэши, как только вы внедрили крюк, или Drupal не заберет его.
документация для html.ТПЛ.шаблон php документы $classes
переменные строка классов, которые можно использовать для контекстного стиля через CSS.. Если вы посмотрите на код шаблона, эта переменная используется в атрибутах класса производимого элемента body:
<body class="<?php print $classes; ?>" <?php print $attributes;?>>
на $classes
переменные фактически уже установлены template_process()
для любого файла шаблона и сборки из содержимого $classes_array
переменная.
Итак, чтобы добавить класс в тело вашей страницы, вы должны добавить этот класс в $classes_array
значение из вашей темы (или модуля) реализация с hook_preprocess_html()
:
function THEME_preprocess_html(&$variables) {
$variables['classes_array'][] = 'new-class';
}
так как это базовый определенный шаблон и функция процесса, любая благонравная тема должна повторно использовать те же переменные.
мне пришлось использовать разные ключи массива в одном крючке, чтобы заставить его работать:
function THEME_preprocess_html(&$vars) {
$vars['attributes_array']['class'][] = 'foo2';
}
на контекст модуль позволяет добавить класс к тегу body.
Это может быть полезно, если вам нужно добавить класс при определенных условиях.
вы найдете эту опцию в разделе реакция "тема HTML":
ответ, по-видимому, зависит от контекста. Вот что я нашел методом проб и ошибок:
Если ваш hook_preprocess_html () находится в модуль, используйте $vars ['classes_array'] [].
Если это тема, используйте $vars ['attributes_array'] ['class'] [].
Общий Класс Тела модуль предоставляет пользователям возможность добавлять классы на любую страницу через интерфейс an. Интерфейс имеет опции для выбора нескольких ролей пользователей, а также страницы, где класс может быть оказана.
я применил эту технику на сайте, что кто-то другой причине. Сначала он не работал, но затем копнул глубже и обнаружил, что переменная $classes не выводится в файле tpl. Так что если это не работает, проверьте это.