Донецкий техникум промышленной автоматики

Правильне додавання CSS в теми Drupal 7

  1. Використання .info файлу для додавання CSS
  2. Додаємо CSS в тему з використанням drupal_add_css ()
  3. Додавання CSS з умовними коментарями для Internet Explore


Здавалося б - банальне запитання «Як додати CSS в тему Drupal», проте багатьох він ставить в тупик. Оскільки бажано робити це не простий так, щоб працювала, а ще й правильно. Тобто відповідно до стандартів кодування Drupal.

Власне є два способи правильного додавання є два найпоширеніших стандартних способу: додавання CSS в тему через .info файл, або ж додавання за допомогою функції drupal_add_css (). Функція drupal_add_css () докладно описана в API Drupal і, як правило, використовується якщо нам необхідно не просто додати CSS в тему а зробити це з певними умовами, наприклад застосувати умовні коментарі для Internet Explore. Нижче ми детально розглянемо обидва способи.

Використання .info файлу для додавання CSS

Це найпростіший спосіб - все, що вам потрібно зробити, це оголосити стилі і шлях до них щодо вашої теми, і все готово. Ви можете також оголосити тип носія, наприклад, print, screen або all. У прикладі нижче CSS будуть запитані з базового каталогу теми, якщо ж вам потрібно використовувати вкладені каталоги, то просто вкажіть шлях щодо базового каталогу теми.

stylesheets [all] [] = all .css stylesheets [screen] [] = screen .css stylesheets [print] [] = print. css

stylesheets [all] [] = all.css stylesheets [screen] [] = screen.css stylesheets [print] [] = print.css

Додаємо CSS в тему з використанням drupal_add_css ()

Для того щоб використовувати функцію drupal_add_css () вам потрібно мати деякі знання PHP. Однак тільки ця функція дозволить додати вам CSS в тему з застосуванням певних умов. Всі тонкощі використання цієї функції ви можете вивчити в документації . А нижче ми розглянемо базові прийоми використання цієї функції для додавання CSS в тему Drupal 7.

Для того щоб додати CSS в вашу тему з використанням функції drupal_add_css () вам потрібно почати з додавання функції в template.php файл вашої теми. Нижче наведено простий приклад коду для додавання:

drupal_add_css (drupal_get_path ( 'theme', 'імя_вашей_теми'). '/стілі-теми.css', array ( 'group' => CSS_THEME, 'type' => 'file'));

drupal_add_css (drupal_get_path ( 'theme', 'імя_вашей_теми'). '/стілі-теми.css', array ( 'group' => CSS_THEME, 'type' => 'file'));

Де імя_вашей_теми і стилі-теми.css замінюємо, відповідно, на потрібне вам.
Також можна додати деякі стилі інлайн, вони будуть відображені в <head> безпосередньо з використанням тега <style>:

drupal_add_css ( 'body {background: # 000;}', array ( 'group' => CSS_THEME, 'type' => 'inline'));

drupal_add_css ( 'body {background: # 000;}', array ( 'group' => CSS_THEME, 'type' => 'inline'));

C допомогою цієї функції ви можете додати і зовнішній файл стилів, наприклад з Google Fonts API:

drupal_add_css ( 'http://fonts.googleapis.com/css?family=Cookie', array ( 'group' => CSS_THEME, 'type' => 'external'));

drupal_add_css ( 'http://fonts.googleapis.com/css?family=Cookie', array ( 'group' => CSS_THEME, 'type' => 'external'));

Додавання CSS з умовними коментарями для Internet Explore

Є два способи це зробити - ви можете використовувати drupal_add_css () із зазначенням параметрів типу браузера, або піти більш простим шляхом і використовувати модуль Conditional Styles , Який дозволить вам додавати CSS-файли через .info файл вашої теми.

Для того щоб використовувати перший спосіб ви повинні використовувати drupal_add_css () всередині функції themename_preprocess_html (), яка повинна бути визначена в template.php теми:

<? Php function my_groovy_theme_preprocess_html (& $ vars) {drupal_add_css (drupal_get_path ( 'theme', 'імя_вашей_теми'). '/Lte-ie-8.css', array ( 'group' => CSS_THEME, 'browsers' => array ( 'IE' => 'lte IE 8', '! IE' => FALSE), 'preprocess' => FALSE)); }?>

<? Php function my_groovy_theme_preprocess_html (& $ vars) {drupal_add_css (drupal_get_path ( 'theme', 'імя_вашей_теми'). '/Lte-ie-8.css', array ( 'group' => CSS_THEME, 'browsers' => array ( 'IE' => 'lte IE 8', '! IE' => FALSE), 'preprocess' => FALSE)); }?>

Основним в цій констукции є визначення правил для умовних коментарів, з якими ви можете експериментувати в залежності від ваших потреб.

'Browsers' => array ( 'IE' => 'lte IE 8', '! IE' => FALSE),

'Browsers' => array ( 'IE' => 'lte IE 8', '! IE' => FALSE),

Другий спосіб, з використанням модуля Conditional Styles значно проще.Установів і активувавши цей модуль ви зможете додавати умовні коментарі безпосередньо в .info файл вашої теми з використанням конструкції типу:

stylesheets -conditional [lte IE 8] [all] [] = lte -ie - 8 .css

stylesheets-conditional [lte IE 8] [all] [] = lte-ie-8.css

Com/css?
Com/css?
8.css', array ( 'group' => CSS_THEME, 'browsers' => array ( 'IE' => 'lte IE 8', '! IE' => FALSE), 'preprocess' => FALSE)); }?
8.css', array ( 'group' => CSS_THEME, 'browsers' => array ( 'IE' => 'lte IE 8', '! IE' => FALSE), 'preprocess' => FALSE)); }?