Добавление класса в " тело"
Как я могу изменить или предварительно обработать <body>
, чтобы добавить тело класса? Я не хочу создавать целый html.ТПЛ.php просто добавить класс.
Ответы - Добавление класса в " тело" / Adding a class to "body"



html.tpl.php
, который имеет любые добавленные классы, которые являются элементом <body>
; функция предварительной обработки выше предназначена для этого файла, поэтому любые добавленные классы будут добавлены только к элементу <body>
.

dpm
для любой переменной в вашем коде; он будет отображать хорошее представление классов и массивов, которые помещаются в обычное сообщение area...it это абсолютная необходимость для отладки. Вы можете использовать его в приведенной выше функции, например, так: dpm($vars);
и он распечатает массив на экран, чтобы вы могли его проверить


mytheme_alpha_preprocess_html
и добавить класс в массив $vars['attributes_array']['class']


31.10.2011 03:01:47
Документация для HTML.ТПЛ.шаблон php документирует переменные $classes
как строку классов, которые можно использовать для контекстного стиля с помощью CSS.. Если посмотреть на код шаблона, то эта переменная используется в атрибутах класса создаваемого элемента body:
<body class="<?php print $classes; ?>" <?php print $attributes;?>>
Переменные $classes
фактически уже установлены template_process()
для любого файла шаблона и строятся из содержимого переменной $classes_array
classes_array.
Поэтому, чтобы добавить класс в тело вашей страницы, вы должны добавить этот класс в значение $classes_array
classes_array из реализации вашей темы (или модуля) hook_preprocess_html()
:
function THEME_preprocess_html(&$variables) {
$variables['classes_array'][] = 'new-class';
}
Поскольку это основной определенный шаблон и функция процесса, любая хорошо работающая тема должна повторно использовать те же переменные.

30.04.2013 03:47:45
Мне пришлось использовать разные ключи массива в одном крючке, чтобы заставить его работать:
function THEME_preprocess_html(&$vars) {
$vars['attributes_array']['class'][] = 'foo2';
}

16.05.2013 06:52:35
Я применил эту технику на сайте, который кто-то другой построил. Сначала это не сработало, но затем копнул глубже и обнаружил, что переменная $classes не выводится в файле tpl. Так что если это не работает, проверьте это.


attributes_array
определяется конкретно Омега тему. Для "нормальных" тем это будет classes_array

23.09.2014 06:00:17
Контекстный модуль позволяет также добавить класс к тегу body.
Это может быть полезно, если вам нужно добавить класс при определенных условиях.
Вы найдете эти параметры в разделе реакция " тема HTML" :

31.03.2017 01:49:46
Модуль Common Body Class предоставляет пользователям возможность добавлять классы на любую страницу через интерфейс an. Интерфейс имеет опции для выбора нескольких ролей пользователей, а также страниц, на которых можно отобразить класс.