Здравствуйте.
Помогите, пожалуйста, решить такую задачу. Есть тема, построенная на DIV-ах, есть соответственно стили для этих дивов. Хочется при загрузке страницы для определенного дива изменить по условию фоновую картинку. Пытаюсь подключить CSS-файл с перекрывающим стилем:
#r2_c4 {
background-image: url(images/override.jpg);
}
Использую такой код:
if (условие) {
drupal_add_css(path_to_theme().'/override.css','theme');
}
Функция drupal_add_css возвращает массив, в котором файл стиля есть. Но сам стиль не обрабатывается. Видимо я что-то недопонимаю в принципе подключения стилей. Как можно решить такую задачу?
PS Модуль theme_key использовать не хочется.
Комментарии
где пытаетесь подключить?
Пробовал и просто в коде и в HEAD. Но чувствую, что-то не так. Пока вывел просто картинку в диве, однако хочется разобраться.
"просто в коде" это где? в heade нужно подключить с помощью html кода, drupal_add_css там не сработает ибо массив со стилями уже собран в переменную $styles
Тогда где? Подозреваю, что где-то в template.php, но пока не понял куда чего
<?php
// template.php
function phptemplate_preprocess_page(&$vars){
drupal_add_css($vars['directory'] . '/override.css');
$vars['styles'] = drupal_get_css();
}
?>
Спасибо, принцип понял.
Мучаюсь точно с тем же вопросом.
Пробовал как посоветовал xxandeadxx
но этот вариант совсем не срабатывает.
срабатывает только если я просто в не функций выполняю в template.php
drupal_add_css(path_to_theme() .'/uc_product.css', 'theme');
!!!!Важно!!!!
С отключенной агрегацией CSS стилей в один css файл в настройках производительности.
Стоит включить тоже не работает.
Вот сейчас думаю куда бы запихнуть эту строку так, чтобы она при включенной агргации CSS тоже работала, не модуль же писать свой для этого.
Мой вариант в template.php вне phptemplate_preprocess_page заработал и при включенной агрегации всех CSS в один файл, надо только потом принудительно очистить кэш, так как только в этом случае снова пересобирается единый css файл. Иначе старый будет подгружаться, в котором нет того что мы в теме добавили.