Если на сайте используется модуль Path, то удобно иметь в body цепочку классов на основе текущего пути. Например если открыта страница news/world/title
то в body должно быть:
<body class="... path-news path-news-world path-news-world-title">
Код, добавляющий эти классы:
/**
* Preprocess function for theme_html()
*/
function THEMENAME_preprocess_html(&$vars) {
$request_path_array = explode('/', request_path());
if ($request_path_array) {
if ($request_path_array[0] == $GLOBALS['language']->language) {
unset($request_path_array[0]);
}
$class = 'path';
foreach ($request_path_array as $arg) {
$class .= '-' . $arg;
$vars['classes_array'][] = $class;
}
}
}
Код учитывает, что сайт может быть многоязычный, и удаляет из адреса префикс языка.
Написанное актуально для
Drupal 7
Комментарии
Если не ошибаюсь, тоже самое можно проделывать с помощью модуля css injector . Но в любом случае спасибо за информацию. Модули модулями... но все же надо понимать, что и как происходит, а не просто тыкать мышкой в админке : )
А зачем это нужно, если друпал и так добавляет туда классы?
не добавляет
Может это у меня модуль Pathauto добавляет?
У меня вот так выглядит просмотр ноды по умолчанию
не вижу классов текущего пути
Я не про классы пути. Я спрашиваю зачем их добавлять, если и так есть уникальные классы вплоть до идентификатора ноды
чтобы составлять селекторы на основе текущего пути
И и с помощью стандартных классов смогу сделать темизацию, зачем добавлять лишние классы?
ну вы молодец. не знаю что ещё вам ответить
Просто может я не понимаю чем вызвана необходимость классов путей, тогда просветите )
Вот более менее Решение для drupal 6
автор пишет, что получается что то типа такого:
Добавить комментарий