Как создать подтему для любой темы?

По большому счёту, подтемы (subthemes) - это те же темы. Отличие их лишь в том, что они наследуют все опции родительской темы.
Подтему обычно удобно создать на основе существующей темы, которую активно обновляет сообщество, чтобы все обновления проходили безболезненно.
Также очень удобно все кастомизации темы хранить и видеть в отдельной папке. По крайней мере мне удобно.

Итак, допустим у нас есть тема bootstrap.
Мы хотим на её основе создать подтему my_bootstrap_subtheme (нейминг ограничивается только вашей фантазией!).

Для этого надо:

  • Создать папку для подтемы (/sites/all/themes/my_bootstrap_subtheme).
  • Поместить туда файл my_bootstrap_subtheme.info
name = My Bootstrap Subtheme
description = My Awesome Example of Bootstrap Subtheme
version = 1.0
core = 7.x
base theme = bootstrap
regions[navigation]     = 'Navigation'
regions[header]         = 'Top Bar'
regions[highlighted]    = 'Highlighted'
regions[help]           = 'Help'
regions[content]        = 'Content'
regions[sidebar_first]  = 'Primary'
regions[sidebar_second] = 'Secondary'
regions[footer]         = 'Footer'

Не забывайте копировать регионы из основной темы!

  • Включить "My Bootstrap Subtheme" в качестве темы (при этом основную тему можно вообще отключить!).
  • Всё. У вас полностью рабочая тема bootstrap и вы безболезненно можете в неё добавлять кастомизации.

Например, добавить свой css или js. Для этого в файле .info просто дописываем:

stylesheets[all][] = custom.css
scripts[] = script.js

При этом не забываем создать сами файлы в нашей подтеме.
Также можно создать какие угодно шаблоны, исключить css основной темы, и так далее.

На заметку:

  1. Для одной темы можно создавать неограниченное количество подтем.
  2. Для подтем тоже можно создавать подтемы, причём эта иерархия ничем не ограничивается... Главное не запутаться :)