Добавить стиль можно через .info-файл — это рекомендуемый путь по добавлению стилей. Каждый стиль должен иметь свой медиатип и можно определить любое количество добавляемых стилей.
В Друпале 5 стандартным файлом стилей был style.css, который размещался в папке темы и загружался автоматически. Это не изменилось и в Друпале 6, при условии, что в .info-файле нет ни одной записи для группы stylesheets[]. Если хоть одна запись есть, то будут загружаться только явно определённые этой группой файлы.
Добавить новый стиль очень просто. Пример:
; Добавление стилей для всех медиа
stylesheets[all][] = theStyle.css
; Добавление стилей для экранов и проекторов
stylesheets[screen, projector][] = theScreenProjectorStyle.css
; Добавление стилей для печати
stylesheets[print][] = thePrintStyle.css
В примере выше, после записи stylesheets, в первых скобках определён медиатип, а вторые скобки нужны, чтобы получить несколько файлов. Это очень простой путь получения массивов в PHP с использованием скобок.
При добавлении стилей, учитывайте следующие моменты:
<head>
, стили будут добавляться в том же порядке, в котором они перечислены в .info-файлеstylesheets[all][] = stylesheets/styleName.css
Так как .info-файл — это статичный текстовый файл, то определённые в нём стили загружаются всегда. Для расширенного оформления, дополнительный контроль может быть получен с использованием API-функции drupal_add_css() в файле template.php.
function phptemplate_preprocess_page(&$variables) {
if (file_exists($section_style = path_to_theme() .'/'. arg(0) .'.css')) {
drupal_add_css($section_style);
$variables['styles'] = drupal_get_css();
}
}
То, что показано в примере выше, называется переменной функцией или предпроцессовой. Эта функция добавляет стиль в зависимости от системного адреса документа. Для определения системного адреса используется функция arg(). Затем, функция drupal_get_css() возвращает значения всех найденных стилей и передаёт их переменной. Таким образом, при посещении страницы user, будет загружен файл user.css. Это простой, но очень показательный пример того, чего можно добиться использованием файла template.php.
Комментарии
что-то в инфо добавил, а на деле как-то не появляется - на странице в итоге только куча стилей, оставшихся с garland'a.