Урок - Добавление стилей.

Главная » Курсы » Курс Drupal 6, Темизация. » Урок - Добавление стилей.

Обучающий онлайн курс
Drupal 6, Темизация.

Лицензия: Копирование запрещено.

Файл .info

Добавить любой файл стиля можно через .info-файл. Это рекомендуемый путь по добавлению стилей. Каждый стиль должен иметь свой медиатип и вы можете определить любое их количество. В Drupal 5, стандартным названием файла стилей было style.css, этот файл размещался в папке темы и загружался автоматически. Это не изменилось и в Drupal 6, если в .info-файле вы добавите какую-либо запись в секцию stylesheets[], то будут загружаться только явно определённые в нём файлы (значения по умолчанию действовать перестанут).

Добавить новый стиль очень просто.

  • Добавьте ключ
    • Добавьте служебную запись stylesheets[]
    • Определите медиатип добавляемого стиля
  • Добавьте значение
    • Введите адрес файла со стилями

Примеры:

; Add a stylesheet for all media
stylesheets[all][] = theStyle.css
; Add a stylesheets for screen and projector media
stylesheets[screen, projector][] = theScreenProjectorStyle.css
; Add a stylesheet for print media
stylesheets[print][] = thePrintStyle.css

В примере выше, после записи stylesheets, в первых скобках определён медиатип, а вторые скобки нужны, чтобы получить несколько файлов. Это очень простой путь получения массивов в PHP с использованием скобок.

При добавлении стилей, учитывайте следующие моменты:

  • Между определённым медиатипом и знаком «=» используйте пустые квадратные скобки
  • В HTML-секцию <head>, стили будут добавляться в том же порядке, в котором они перечислены в .info-файле
  • Файлы могут размещаться в других папках. Например: stylesheets[all][] = stylesheets/styleName.css
  • Содержание .info-файла кешируется. Добавление или удаление стилей не будут применены до того, как будет очищен кеш. См. Очистка кеша
  • При работе со стилями (разработке сайта) отключайте оптимизацию CSS-файлов. Если оптимизация стилей включена, то изменения не будут видны до того, как будет очищен кеш

Файл template.php

Так как .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() возвращает значения всех найденных стилей и передаёт их переменной. Таким образом, при посещении страницы example.com/user, будет загружен файл user.css. Это простой, но очень показательный пример того, чего можно добиться использованием файла template.php.