Управление CSS- и JS-файлами дизайн-темы

В системе Друпал таблицы стилей и скрипты можно подключить в файле конфигурации дизайн-темы с расширением .info командами типа stylesheets[all][] = css/styles.css и scripts[] = js/script.js. Изменения в конфигуркационном файле вступают в силу после обновления кеша системы, например командой "Clear all caches" в разделе "Configuration / Performance" меню администратора. Указанные файлы загрузятся на всех страницах дизайн-темы.

Для подключения CSS- и JS-файлов на выборочных страницах сайта можно добавлять их с помощью PHP-функций drupal_add_css и drupal_add_js в файле template.php дизайн-темы. Данный PHP-файл содержит функции дизайн-темы и позволяет перехватывать и реагировать на события в среде Drupal и менять с помощью preprocess- и process-функций значения переменных, используемых в php-шаблонах для вывода страниц, регионов, блоков, ссылок и других компонентов сайта. Например, функция THEME_preprocess_block позволяет скорректировать переменные шаблона block.tpl.php, отвечающего за вывод блоков на странице.

По-умолчанию в Друпале грузятся таблицы стилей модулей book, views, ckeditor, ctools, shortcut, date, field, node, user и др. В уроке продемонстрировано выборочное отключение каскадных таблиц в файле template.php с помощью hook-функции hook_css_alter, которая передает по ссылке переменную $css с массивом подгружаемых на странице CSS-файлов. Массив исследован с помощью функции krumo модуля Devel, которая выводит переменную в удобочитаемом формате. Таблицы стилей и скрипт для блока со списком школьных предметов добавлены с применением функции blitztest_preprocess_block и команд drupal_add_css и drupal_add_js.

В уроке продемонстроировано выборочное отключение системных таблиц стилей и добавление CSS- и JS-файлов исключительно на страницы с заданным блоком. Потребовалось создание hook- и preprocess-функций в файле template.php.