
Drupal 7 предоставляет разработчику полный контроль над внешним видом сайта через создание кастомной темы. Это не просто изменение оформления, а возможность определить структуру шаблонов, поведение блоков и правила отображения контента. В отличие от переопределения существующей темы, создание собственной обеспечивает точную реализацию уникальных требований проекта.
Для начала требуется создать директорию темы в sites/all/themes или sites/имя_сайта/themes, после чего внутри неё разместить минимум два файла: .info-файл, определяющий параметры темы, и template.php – файл с пользовательскими функциями. Например, файл mytheme.info должен содержать параметры name, description, core, engine и список подключаемых CSS и JS файлов.
Ключевым моментом является структура шаблонов. Drupal 7 использует систему шаблонов на основе PHPTemplate. Это позволяет переопределять стандартные шаблоны, такие как page.tpl.php, node.tpl.php или block.tpl.php, и добавлять собственные, например, для определённых типов контента. Файлы шаблонов размещаются в корне темы и могут сопровождаться префиксами, например: node—article.tpl.php – для материалов типа Article.
Создание собственной темы в Drupal 7 требует понимания архитектуры движка, но открывает возможности точной настройки отображения контента и интерфейса. Такой подход особенно оправдан при разработке сайтов с нестандартным дизайном и поведением.
Структура файлов и папок кастомной темы

Корневая папка темы размещается в директории sites/all/themes и должна иметь уникальное название. Название директории должно совпадать с машинным именем темы, указанным в файле .info.
Тема.info – основной конфигурационный файл. Указывает имя темы, базовую тему (если используется), подключаемые стили, скрипты и регионы. Обязателен для функционирования темы.
template.php – файл с функциями препроцессинга. Здесь определяются template_preprocess_* функции для передачи переменных в шаблоны и изменения стандартного поведения Drupal.
page.tpl.php – основной шаблон страницы. Содержит разметку HTML-страницы и вызовы переменных Drupal, таких как $content, $page['header'], $page['footer'].
node.tpl.php – шаблон для отображения материалов. Используется для кастомизации структуры и классов отдельных нодов.
style.css – основной файл стилей. Подключается через .info-файл. Рекомендуется использовать минимальное количество внешних CSS-файлов для повышения производительности.
js/ – директория для JavaScript-файлов. Все скрипты должны подключаться через .info или с использованием функций drupal_add_js() в template.php.
css/ – опциональная папка для организации CSS-файлов по назначению: layout.css, typography.css и т.д.
templates/ – рекомендуемая структура для хранения всех *.tpl.php файлов, если требуется логическая организация шаблонов.
theme-settings.php – файл для создания пользовательских настроек темы, доступных через административный интерфейс. Используется совместно с form-system-theme-settings-alter.
Наличие четкой структуры и изоляция логики, шаблонов и стилей существенно упрощают поддержку и развитие кастомной темы.
Создание и настройка файла.info

- name – Читаемое имя темы. Например:
name = Моя тема. - description – Краткое описание для интерфейса:
description = Тема для сайта компании. - core – Версия ядра:
core = 7.x. - engine – Шаблонизатор, по умолчанию
phptemplate:engine = phptemplate. - stylesheets[all][] – Подключение CSS:
stylesheets[all][] = css/style.css. - scripts[] – Подключение JavaScript:
scripts[] = js/script.js. - regions – Объявление регионов для блоков:
regions[header] = Шапка
regions[sidebar_first] = Левая колонка
regions[content] = Основной контент
regions[footer] = Подвал
- regions[content] обязателен. Остальные – на усмотрение разработчика.
- features[] – Включение функций темы:
features[] = logo
features[] = name
features[] = slogan
features[] = node_user_picture
features[] = comment_user_picture
features[] = favicon
- Для наследования шаблонов из базовой темы используется:
base theme = themename.
После сохранения .info-файла тему можно активировать через интерфейс администрирования или с помощью Drush. Для применения изменений необходимо очистить кэш.
Подключение CSS и JavaScript в теме

В Drupal 7 подключение CSS и JavaScript реализуется через файл шаблона темы – template.php. Основной способ – использование функции THEMENAME_preprocess_page() или THEMENAME_preprocess_html(), где THEMENAME – системное имя вашей темы.
Для подключения CSS используйте drupal_add_css(). Пример подключения файла styles.css из каталога темы:
function mytheme_preprocess_html(&$variables) {
drupal_add_css(path_to_theme() . '/css/styles.css', array('group' => CSS_THEME, 'every_page' => TRUE));
}
Для подключения JavaScript используйте drupal_add_js(). Пример подключения пользовательского скрипта:
function mytheme_preprocess_html(&$variables) {
drupal_add_js(path_to_theme() . '/js/scripts.js', array('group' => JS_THEME, 'scope' => 'footer', 'every_page' => TRUE));
}
Альтернативный способ – использование .info-файла темы. Пример структуры:
stylesheets[all][] = css/styles.css
scripts[] = js/scripts.js
Файлы, подключённые через .info, загружаются автоматически на всех страницах и не требуют дополнительного кода в template.php.
Для подключения только на определённых страницах используйте условную логику внутри template.php:
if (drupal_is_front_page()) {
drupal_add_js(path_to_theme() . '/js/front.js', array('group' => JS_THEME));
}
Drupal автоматически агрегирует и сжимает файлы, подключённые корректно. Для активации этой функции включите её в разделе «Производительность» (admin/config/development/performance).
Переопределение шаблонов и функций темы

Имена шаблонов регистрируются в hook’е template_preprocess_HOOK(). Чтобы добавить свои шаблоны, определите THEMENAME_preprocess_HOOK() в файле template.php. Например, для блока это будет mytheme_preprocess_block(). Здесь можно изменить переменные до передачи их в шаблон.
Не забудьте очистить кэш после добавления или изменения шаблонов: admin/config/development/performance или через Drush командой drush cache-clear theme-registry.
Для отладки используйте функции kpr() или dpm() из Devel-модуля, чтобы просматривать доступные переменные в шаблонах и функциях препроцессинга.
Настройка регионов и блоков через тему

Регионы определяются в файле yourtheme.info. Добавьте секцию regions[], указав уникальные ключи и читаемые названия:
regions[header] = Верхняя часть regions[sidebar_first] = Левая колонка regions[content] = Основной контент regions[footer] = Нижняя часть
После сохранения .info-файла необходимо очистить кэш через admin/config/development/performance, чтобы новые регионы стали доступны в интерфейсе размещения блоков.
Чтобы блоки корректно отображались, необходимо убедиться, что класс-обёртка содержит уникальные идентификаторы и соответствующие стили. Используйте модуль Block Class для точного позиционирования и настройки.
Для адаптации под конкретные шаблоны страниц применяйте page—front.tpl.php или page—node—%nid%.tpl.php, размещая блоки в нужных регионах. Это позволяет гибко управлять структурой без изменения глобальной логики темы.
Активация и отладка собственной темы в интерфейсе

После создания собственной темы для Drupal 7 необходимо активировать её и провести отладку, чтобы убедиться, что всё работает корректно. Для активации темы перейдите в раздел «Конфигурация» → «Внешний вид» в административной панели. В списке доступных тем найдите вашу и нажмите «Активировать». Чтобы сделать её темой по умолчанию, кликните «По умолчанию» рядом с названием темы.
Если вам необходимо проверить работу CSS и JavaScript файлов, используйте инструменты разработчика в браузере. Включение кеширования стилей и скриптов может скрыть изменения, поэтому для отладки отключите кеширование через «Конфигурация» → «Разработка» → «Очистить кеш». Это обеспечит обновление всех файлов при изменениях.
При работе с шаблонами (файлы .tpl.php) также полезно включить их отладку через переменную theme_debug. Это позволит видеть, какой именно шаблон используется для рендеринга различных элементов страницы, что поможет быстрее находить ошибки в разметке.
Регулярно очищайте кеш, чтобы исключить отображение устаревших данных. Используйте для этого как административный интерфейс, так и командную строку, выполняя команду drush cc all, если у вас установлен Drush.
Для проверки работы темы на разных устройствах и экранах используйте инструменты адаптивного тестирования в браузере. Это позволит удостовериться, что тема выглядит корректно на мобильных и планшетных устройствах.
Вопрос-ответ:
Как создать свою собственную тему в Drupal 7?
Для создания собственной темы в Drupal 7 необходимо выполнить несколько шагов. Сначала создается папка для новой темы в директории `/sites/all/themes`. Затем нужно создать основные файлы темы, такие как `theme.info` и `template.php`. В файле `.info` указываются метаданные темы, а `template.php` отвечает за функциональные особенности. Важным шагом является создание файлов шаблонов для вывода контента, например, `page.tpl.php` и `node.tpl.php`. Также важно настроить стили с помощью CSS и JavaScript. Когда тема готова, нужно активировать ее через интерфейс администрирования Drupal.
Что нужно учитывать при разработке темы в Drupal 7?
При разработке темы для Drupal 7 следует учитывать несколько важных аспектов. Во-первых, стоит внимательно подходить к структуре файлов и папок, чтобы соблюдать стандарты Drupal. Для улучшения производительности важно правильно подключать стили и скрипты, избегая избыточных запросов. Также стоит учесть, что Drupal использует систему блоков, поэтому необходимо продумать их размещение и видимость. Важно уделить внимание адаптивности темы, чтобы она корректно отображалась на разных устройствах. Использование шаблонов для кастомизации вывода контента поможет избежать дублирования кода и упростит дальнейшую работу с темой.
Какие файлы необходимы для создания темы в Drupal 7?
Для создания базовой темы в Drupal 7, как минимум, нужно создать два файла: `theme.info` и `template.php`. Файл `.info` описывает свойства темы, такие как название, описание, пути к файлам стилей и скриптов. В нем также указываются файлы шаблонов, которые будут использоваться. Файл `template.php` содержит PHP-код, который добавляет дополнительные функции и изменяет поведение шаблонов. Для полноценной работы темы также рекомендуется создать CSS-файлы для стилей и возможно файлы JavaScript для добавления интерактивных элементов.
Как настроить стили и скрипты для своей темы в Drupal 7?
Для подключения стилей и скриптов в собственной теме Drupal 7 нужно использовать файл `theme_name.theme` (где `theme_name` — это название вашей темы). В этом файле с помощью функции `drupal_add_css()` добавляются стили, а с помощью `drupal_add_js()` — скрипты. Эти функции позволяют подключать как внешние файлы, так и локальные, находящиеся в папке вашей темы. Также стоит помнить, что стили и скрипты следует подключать с учетом приоритетов и избежать дублирования. Хорошей практикой является использование минфицированных версий файлов для ускорения загрузки страниц.
