Механизм дочерних тем (подтем).
Кто собирал темы на основе zen видели, что собственная тема является "дочерней темой" (sub-theme) темы zen. Для краткости я буду в тексте использовать термин "подтема". Что же такое "подтема" в drupal 6?
Подтема - это обычная тема drupal, за исключением одного отличия: она наследует ресурсы родителя. Подтема может быть подтемой другой подтемы, как это изображено на рисунке:

Это делает подтемы отличным инструментом. Представим себе что подтема является каркасом, фундаментом, а все детали реализуются в подтемах. Вы можете предлагать вариации дизайна заказчику, просто оперируя подтемами. Вы можете создавать для отдельных групп пользователей или отдельных сайтов в мультисайтинге подтемы. При этом сохраняете возможность простого обновления вашего "каркаса", основной темы. На первый план выступает ваше планирование и создание "архитектуры" сайта, а возможности темизации становятся практически безграничными.
Для определения родителя, "base theme", обозначьте это в .info файле вашей подтемы:
base theme = themeName
Где themeName - имя родительской темы (к примеру zen, или ninesixty).
Где должна располагаться подтема? В любом месте пространства тем drupal, или внутри папки родительской темы:
/sites/all/themes/моя-подтема
/sites/all/themes/ninesixty/моя-подтема.
Рекомендуют использовать для расположения папку родительской темы, для большего порядка в файловой системе, если вы будете плодить много родителей и много подтем.
Что наследуется?
Какие же ресурсы темы-родителя наследуются вашей подтемой?
- Все стили (css-файлы). Важно: для наследования стилей родительской темы, вы должны определить хотя бы один файл стилей в дочерней теме. Порядок вывода стилей в html будет таков: стили друпала -> стили базовой темы -> стили дочерней темы. Если drupal у вас есть два style.css файла в папке темы и подтемы, используется style.css подтемы.
- Все javascript-файлы
- Все файлы шаблонов (tpl.php)
- Все внутренности template.php, в том числе переопределение функций тем, препроцесс-функции и т.п. Каждая подтема может включать собственный template.php файл, который будет работать параллельно с родительским.
- Скриншот темы
Что не наследуется?
- logo.png темы
- Настройки регионов в .info файле. Если вы не используете стандартные регионы, убедитесь что в вашем page.tpl.php и .info файле прописаны нужные вам регионы. Таким образом каждая подтема может иметь свои собственные регионы, что делает механизм темизации очень гибким.
- Все что находится в theme-settings.php для расширенных настроек темы.
- Все что касается настроек цвета для модуля Color.
