Вы здесь

Создание темы для Друпала 6

Нашел на просторах Интернета самый обалденный, понятный, простой пост про создание темы для Друпала 6 (theme Drupal 6).

Главный файл темы оформления в Drupal - page.tpl.php. Сделайте копию макета Вашего сайта и переименуйте его в page.tpl.php. Затем, просто вставьте приведенный в дальнейшем в инструкции код в свой макет (в нужные места файла page.tpl.php).

В начало файла добавьте:

 

<html xmlns="http://www.w3.org/1999/xhtml" lang=" <?php print $language ->language ?> " xml:lang=" <?php print $language -> language ?> " dir=" <?php print$language -> dir ?> ">

Это рекомендованный способ начать вашу страницу, вместо стандартного тега html.

В раздел head макета добавьте:

<head> 

<title> <?php print $head_title ?> </title> 

<?php print $head ?> 

<?php print $styles ?> 

<?php print $scripts ?> 

</head>

Этот код соответственно добавляет заголовок для сайта, стили и скрипты.

Большинство сайтов имеют правые и левые колонки, располагающиеся рядом с основным содержанием страницы. Эти колонки, как правило, содержат различную полезную информацию (например, вход, меню, недавние комментарии и т.д.). В Drupal эти информационные области называется "Блоки". Вы можете настроить отображение блоков на сайте в специальном разделе "Блоки" (Управление > Конструкция сайта > Блоки, admin/build/block).

В Drupal для того, чтобы знать, куда поставить блок, макет должен содержать специальные «метки».А для этого нужно добавить несколько "меток" в макет главного файла темы – page.tpl.php. Такие метки называются «Регионы». Очень важно добавить хотя бы одну колонку (то есть регион) в Ваш макет, чтобы в дальнейшем отображалось меню администратора и форма входа на сайт. Ниже Вы видите код для добавления левого и правого региона:

<?php print $left ?>

...и/или...

<?php print $right ?>

Drupal сайт по умолчанию уже содержит три вида меню. Первое – это меню администратора сайта. Основное меню сайта называется Primary Links. Существует также меню Secondary Links, которое можно использовать как самостоятельное меню, либо как меню второго уровня (подменю) для Primary Links. C помощью CSS Вы можете легко изменить стиль отображения всех меню на сайт.

Есть несколько вариантов добавить места для Primary Links и Secondary Links прямо в макет сайта.

Простой вариант. Его нужно использовать, если Вы точно уверены в наличии и отображении во всех разделах сайта и основного меню Primary и его подменю:

<div id="primary"> 

<?php print theme 'links' $primary_links ); ?> 

</div> <!-- /#primary --> 



<div id="secondary"> 

<?php print theme 'links' $secondary_links ); ?> 

</div> <!-- /#secondary -->

Если Вы считаете, что на некоторых страницах сайта меню может полностью или частично отсутствовать, то лучше использовать следующий код (он такой же что и первый вариант, только использует проверку на наличие меню):

<?php if ( $primary_links ): ?> 

<div id="primary"> 

<?php print theme 'links' $primary_links ); ?> 

</div> <!-- /#primary --> 

<?php endif; ?> 



<?php if ( $secondary_links ): ?> 

<div id="secondary"> 

<?php print theme 'links' $secondary_links ); ?> 

</div> <!-- /#secondary --> 

<?php endif; ?>

На данный момент можно сказать, что Вы добавили в свой макет все необходимые второстепенные блоки. Теперь пришло время добавить область, в которой будет отображаться основное содержание Вашего сайта.

Найдите нужное место в шаблоне, куда Вы хотите добавить основное содержание (как правило, в центре страницы, после заголовка и между колонками) и вставьте следующий код:

<?php print $breadcrumb ?> 

<?php if ( $mission ): ?> <div id="mission"> <?php print $mission ?> </div> <?php endif; ?> 



<div id="content"> 

<?php if ( $title ): ?> <h1 class="title"> <?php print $title ?> </h1> <?phpendif; ?> 

<?php if ( $tabs ): ?> <div class="tabs"> <?php print $tabs ?> </div> <?phpendif; ?> 

<?php if ( $show_messages ): print $messages ; endif; ?> 

<?php print $help ?> 



<?php print $content ?> 

</div>

Для добавления регионов колонтитула и подвала (футера) вставьте следующий код внизу вашей макета:

<?php if ( $footer_message || $footer ) : ?> 

<div id="footer-message"> 

<?php print $footer_message $footer ?> 

</div> 

<?php endif; ?>

В конце файла page.tpl.php Вы должны обязательно (для правильной работы сайта) вставить следующий код:

<?php print $closure ?> 

</body> 

</html>

В 6 версии CMS Drupal, для того чтобы система опознала Вашу тему оформления, необходимо создать специальный файл с расширением .info – НазваниеТемы.info (Название темы – латиницей). Просто создайте пустой файл, и вставьте в него следующий код, добавив от себя только название темы и ее описание. Сохраните этот файл в папке Вашей темы.

name = НазваниеТемы (латиницей)

description = Описание Вашей темы 

core = 6.x 

engine = phptemplate 

stylesheets[all][] = style.css 

regions[left] = Left sidebar 

regions[right] = Right sidebar 

regions[content] = Content 

regions[footer] = Footer

Как Вы видите, в этом файле также перечисляются регионы, которые Вы используете в своем макете. Вы можете здесь добавить новые регионы, либо удалить имеющиеся. При добавлении/удалении регионов не забывайте вносить изменения в главный файл темы оформления – page.tpl.php.

И в продолжение: добавление собственных регионов для главной страницы

Вначале статьи заметим, что этот материал имеет отношение только к темам, созданным на основе PHPTemplate (по умолчанию движок для тем в Drupal). Добиться отображения на главной странице сайта только нужных регионов можно несколькими способами.

Один из самых простых решений – скопировать файл page.tpl.php (находится в папке Вашей темы) и переименовать эту копию в page-front.tpl.php. Именно этот файл и будет отвечать за отображение информации на главной странице Вашего сайта. И чтобы изменить ее нужно будет только внести изменения в page-front.tpl.php.

Если же Вы не сторонник увеличения количества файлов в теме Вашего сайта, то имеется альтернативный вариант, как внести изменения в рамках существующего файла page.tpl.php. Для этого вначале нам необходимо будет создать новые регионы, которые будут отображаться только на главной странице (этот пункт важен и для первого варианта). Допустим это будут три региона – «frontpage top», «frontpage center», «frontpage bottom».

Чтобы создать новые регионы (в 6 версии) необходимо добавить в специальный код в файл с расширением .info. Имя данного файла будет полностью совпадать с названием Вашей темы. То есть для темы оформления garland нужный файл будет называться garland.info. В этот файл нужно будет добавить список имеющихся регионов и вновь создаваемых Вами регионов:

regions[left] = Left sidebar

regions[right] = Right sidebar

regions[content] = Content

regions[header] = Header

regions[footer] = Footer

regions[frontpage_top] = Frontpage Top

regions[frontpage_center] = Frontpage Center

regions[frontpage_bottom] = Frontpage Bottom

Теперь после того как новые регионы были добавлены, откройте файл page.tpl.php и в необходимое Вам место поместите следующий код, который добавит новый регион «Frontpage Top» на Вашу главную страницу:

<?php if ( $is_front || strstr $_GET 'q' ], 'admin/block' )) : ?> 

<div id="frontpage_top" class="frontpage"> 

<?php print $frontpage_top ?> 

</div> 

<?php endif; ?>

Повторите эту процедуру для оставшихся регионов Frontpage Center и Frontpage Bottom. Вы можете объединить все регионы в рамках одного запроса if () для улучшения производительности.

Для того чтобы добавить блоки с информацией в новые регионы, перейдите в раздел «Блоки» (Главная › Управление › Конструкция сайта) и внесите нужные изменения.

Если же Вы не хотите отображать один из стандартных регионов на главной странице, то добавьте перед этим регионов код:

<?php if (!$is_front) { ?>

а после региона код:

<?php ?>

Автора автора