Пробовал делать как в этой статье: Собственный css-файл стилей для определенного типа материала.
<?php
function colourise_preprocess(&$vars, $hook)
{
...
if ($vars['type'] == 'gallery')
{
drupal_add_css(drupal_get_path('theme', 'colourise') . '/css/gallery.css', 'theme');
}
}
?>
Выдаёт подобную ошибку.
Notice: Undefined index: type в функции colourise_preprocess() (строка 30 в файле путь_к_файлу_template.php).
Я так понял, дело в версии (она у меня седьмая).
Вопросы:
Как можно узнать машинное имя типа в друпал 7?
Приемлемый ли это способ для установления CSS определённому типу материалов?
Комментарии
Отредактировал запись.
Да дело в версии.
попробуй так
function colourise_preprocess_node(&$variables) {
if ($variables['type'] == 'gallery') {
drupal_add_css(drupal_get_path('theme', 'colourise') . '/css/gallery.css');
}
}
Там в этой функции $vars уже используется.------------------------------
Сори, затупил. Проверяю.
Запостил дважды. Удалите этот коммент.
<?php
function colourise_preprocess_node(&$variables) {
if ($variables['type'] == 'gallery')
{
drupal_add_css(drupal_get_path('theme', 'colourise') . '/css/gallery.css');
}
}
?>
Не работает..
Ничего не делает. Даже если убрать условие, то ничего не происходит.
Если вставить строку
<?php
drupal_add_css(drupal_get_path('theme', 'colourise') . '/css/gallery.css');
?>
в функции colourise_preprocess или colourise_preprocess_page то CSS начинает работать на всех страницах.
А в colourise_preprocess_node не пашет.
То что я написал надо вставить в файл template.php темы оформления и почистить кеш сайта.
Про кэш я как-то не подумал..
Магия! Работает!
Спасибо большое за помощь!