Создание темы для Drupal 6. Добавление стилей

Аватар пользователя artur.baranok
Опубликовано вт, 07/14/2015 - 12:54 пользователем artur.baranok
Форумы: 

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

Добавить комментарий

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.