Механизм дочерних тем (подтем).

Кто собирал темы на основе zen видели, что собственная тема является "дочерней темой" (sub-theme) темы zen. Для краткости я буду в тексте использовать термин "подтема". Что же такое "подтема" в drupal 6? Подтема - это обычная тема drupal, за исключением одного отличия: она наследует ресурсы родителя. Подтема может быть подтемой другой подтемы, как это изображено на рисунке: механизм ветвления Это делает подтемы отличным инструментом. Представим себе что подтема является каркасом, фундаментом, а все детали реализуются в подтемах. Вы можете предлагать вариации дизайна заказчику, просто оперируя подтемами. Вы можете создавать для отдельных групп пользователей или отдельных сайтов в мультисайтинге подтемы. При этом сохраняете возможность простого обновления вашего "каркаса", основной темы. На первый план выступает ваше планирование и создание "архитектуры" сайта, а возможности темизации становятся практически безграничными. Для определения родителя, "base theme", обозначьте это в .info файле вашей подтемы: [code] base theme = themeName [/code] Где 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.

Партнерская программа

Кстати, для интересующихся технологиями, у нас есть партнерская программа. Если по вашей специализации:

  • вы работате над другими задачами (не создание типовых сайтов),
  • вы работаете с высокобюджетными сайтами,
  • вам хочется ковертировать обращения по вопросам "помогите с созданием сайта-визитки" в прибыль.

Тогда, добро пожаловать в партнерку :)