xandeadx.ru Блог музицирующего веб-девелопера

Drupal → Создание подтемы (sub-theme)

Опубликовано в

Что такое подтема

Подтема (sub-theme) — это тема, которая наследует функционал другой темы. Под функционалом понимается — шаблоны (файлы tpl.php), css/js файлы, настройки, функции определённые в template.php.

Зачем нужны подтемы

Главный девиз Drupal — "Не трожь ядро!", именно для этого и нужны подтемы — чтобы можно было изменить какую то часть базовой темы (входящую в ядро друпала или скачанную с официального сайта) не трогая её файлы.

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

Как создать подтему

В папке sites/all/themes создаём новую директорию, например mybartik.

В этой директории создаём .info файл, например mybartik.info.

В этом файле прописываем информацию о подтеме и о родительской теме:

name = My Bartik
description = Modified Bartik theme
core = 7.x
engine = phptemplate
base theme = bartik

Так же копируем из .info файла родительской темы информацию о регионах и дефолтных настройках, так как эти параметры почему-то не наследуются.

Активируем тему.

Как переопределять css файлы

Скопировать css файл из родительской темы и подключить его в .info файле подтемы. Например:

stylesheets[all][] = css/style.css

Очистить кэш.

Теперь вместо themes/bartik/css/style.css будет подключаться файл sites/all/themes/mybartik/css/style.css.

Если нужно отключить какой-то css файл, то можно просто очистить его содержимое в подтеме.

Как переопределять js файлы

Всё по аналогии, только в .info файле нужно прописывать:

scripts[] = script.js

Как переопределять функции темизации

Так же как и в обычной теме — реализовать в template.php соответствующий хук с именем подтемы в качестве префикса. Сбросить кэш.

Preprocess и process функции переопределять нельзя (точнее можно, но делается это уже из своего модуля), можно только добавить собственные.

Как переопределять шаблоны

Скопировать шаблон из родительской темы, изменить его, сбросить кэш.

---
Вольный перевод статьи Creating a sub-theme.

Написанное актуально для Drupal 7
Похожие записи

Комментарии RSS

function bartik_preprocess_node(&$variables) { ... }

на
function mybartik_preprocess_node(&$variables) { ... }

пашет в template.php. D7.14.

Будте добры поподробней
Так же как и в обычной теме — реализовать в template.php соответствующий хук с именем подтемы в качестве префикса. Сбросить кэш.

Несовсем понятно..

themename_hookname

Да, только вот про модуль color, что bartik-субтема не подключает ничего не сказано. Надо разбираться.

тихо сам с собой)) нашел ответ на https://drupal.org/node/1114190
делаем для http://promo.org.il

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании