Добрый день в этом посте я вам расскажу, как создать подтему (англ. sub-theme) для Drupal 7 и для чего это нужно. Чтоб не читать сей длинный опус предлагаю посмотреть видео:
Ну а для тех, кто лучше воспринимает информацию визуально вот некая расшифровка видео.
Для чего это нужно
Вариант №1. Скачали вы тему с d.org или где-то ее купили, есть большая вероятность того, что вас эта тема устраивает не полностью. И вы начинаете вносить в нее какие-то изменения. Но вот автор темы выпустил обновления, вы не думая обновились и все вроде бы прекрасно, но все ваши изменения пропали.
Вариант №2. Создали вы свою тему и все у вас прекрасно, но вот пришел заказчик, начальник или вы сами вдруг решили не много изменить тему под какой-то, например, праздник. Не переделывать же основную тему, а через какое-то время ее менять обратно.
В обоих случаях я следует использовать подтему. Она не только поможет вам не потерять свои изменения и пользоваться новыми фичами родительской темы, но и послужит прекрасным вариантом небольших изменений, для праздников, которые вы сможете из года в год включать и не заморачиваться.
Как создать
В друпал 7 есть стандартная тема Бартик, на ее основе мы будем делать подтему. Для начала переходим в папку sites/all/themes и создаем там папку с нашей темой, допустим swd. Называться наша тема должна на английском и начинаться с буквы. Внутри папки swd создаем файл swd.info, именно по этому файлу друпал поймет, что мы создали тему. Так же содаем папку css и в ней файл style.css. Так как мы создаём тему на основе Бартика, то рекомендую вам просто скопировать содержимое bartik.info в наш файл, с не большими изменениями:
description = SWD Bartik sub-theme
package = Core
version = 0.1
core = 7.x
base theme = bartik
stylesheets[all][] = css/style.css
regions[header] = Header
regions[help] = Help
regions[page_top] = Page top
regions[page_bottom] = Page bottom
regions[highlighted] = Highlighted
regions[featured] = Featured
regions[content] = Content
regions[sidebar_first] = Sidebar first
regions[sidebar_second] = Sidebar second
regions[triptych_first] = Triptych first
regions[triptych_middle] = Triptych middle
regions[triptych_last] = Triptych last
regions[footer_firstcolumn] = Footer first column
regions[footer_secondcolumn] = Footer second column
regions[footer_thirdcolumn] = Footer third column
regions[footer_fourthcolumn] = Footer fourth column
regions[footer] = Footer
Самое главное в нашем файле, это строка base theme = bartik, где bartik машинное имя родительской темы. На нашем сайте заходим в Оформление и видим, что появилась наша тема, включаем ее по умолчанию и переходим на главную страницу. Видим, что тут слегка все перекошено. Все это потому, что у нас пустой css, вы можете заполнять его своими свойствами или полностью скопировать css родительской темы и вносить свои изменения.
Так же можно переопределять шаблоны рендеринга страниц в нашей теме. Например, из папки themes/bartik/templates мы можем скопировать файл page.tpl.php в нашу тему (рекомендую в нашей теме создать папку templates и копировать туда, но можно и в корень нашей темы). Этот файл отвечает за рендеринг страниц нашего файла. Для того чтобы убедиться, что все работает предлагаю удалить из него, например, вот это:
<div id="main-menu" class="navigation">
<?php print theme('links__system_main_menu', array(
'links' => $main_menu,
'attributes' => array(
'id' => 'main-menu-links',<h3></h3>
'class' => array('links', 'clearfix'),
),
'heading' => array(
'text' => t('Main menu'),
'level' => 'h2',
'class' => array('element-invisible'),
),
)); ?>
</div> <!-- /#main-menu -->
<?php endif; ?>
Этот кусок отвечает за вывод main menu (основного меню). Обязательно очищаем кэш, переходим на главную страницу и видим, что меню в верху страницы больше нет, а значит все подключилось и прекрасно работает.
В каждой теме есть файл template.php. В нем находится вся логика нашей темы. Вы можете его создавать, а можете и не создавать. Первоначально выполняется то что находится в файле подтеме, а только потом темы родителя, так что дублировать его содержимое не нужно. Подробней о создании подтем можно почитать на д.орг.
Вместо заключения
Если вам понравилось видео, подписывайтесь на мой канал и заходите в мой блог. А если вы добрый, щедрый и любите хорошие начинания вы можете поддержать автора.
Комментарии
Теперь пожалуйста, аналогичный ролик про Восьмёрку, будьте добры. И фоновая музыка в первом ролике была громче.
про 9ку есть информация? нашел только https://druki.ru/wiki/9/themes/create