Конвертим тему из Drupal 6 в семерку. Что новенького?

этот пост – копипаст с моего блога sidashin.ru

Этот пост посвящен нескольким интересным моментам конвертации темы из Друпал 6 в Друпал 7. Как же это сделать наименее безболезненно? Итак:
http://drupal.org/node/550722 – Drupal7 theme guide. На момент написания этого поста – пустая страничка. Ну, не очень то и хотелось :)
http://drupal.org/update/theme/6/7 – конвертим темы из D6 в D7

Вскрытие D7 темы – Garland

Первое, что бросается в глаза – все вызовы типа

<?php echo $tabs?>

превратились в

<?php echo render($tabs); ?>

Что это значит? Это значит, что прямо в теме, в последнюю секунду перед выводом сайта, можно быстро и без плясок с бубном наложить изменения на большую часть данных.
<?php unset($tabs[1]); //скрыли таб 'edit' на ноде ?>

Жалко, что многие элементы в темплейт попадают уже отрендеренными, и теперь надо помнить, что $breadcrumb, $title, $primary_nav надо выводить через print, а $tabs и все регионы – через print render();

Финт ушами – hide()

Вспомним, как в D6 удобнее и быстрее всего рендерить содержимое ноды.
<?php print $content?>
При малейших необходимых изменениях в выводе, например если какой-то элемент в $content нам на сайте показывать не нужно, обычно все скатывалось к работе с объектом $node:
<?php print $node->content['body']['#value'?>
<?php echo $node -> field_delivery[0]['safe'];?>

Что нам предлагают в D7?
Вот иллюстрация:

<div class="content">
  <?php
    // Скрываем комменты и линки, рендерим $content, а комменты и линки - потом, ниже. 
    hide($content['comments']);
    hide($content['links']);
    print render($content);
  ?>
</div>
 
<?php print render($content['links']); ?>
 
<?php print render($content['comments']); ?>. 

посмотрим, будет ли это удобно в реальном использовании.

Больше блоков!

Ох, вот это мне по душе. Теперь нет переменной $mission, теперь нет переменной $footer_message, теперь нет переменной $search_box. Хочешь миссию сайта вывести – есть регион highlight, суем туда блок с миссией. Хочешь поисковую форму – суем в любой регион поиск.
Теперь контент страницы – тоже, блок! И выводится он по умолчанию в регион content (который является обязательным регионом для всех тем). И можно теперь вывод главной страницы засунуть в левую колонку, а можно в регион content сверху и снизу насовать разных блоков. Гибко, единообразно.

Появилось понятие “скрытых регионов”. Они определяются в .info файле темы через regions_hidden[] = и не показываются на странице блоков в админке – но могут использоваться модулями для вывода какой-то информации. Пока полезность под вопросом, надо пробовать.

остальные изменения (которых 32 штуки всего) – можно посмотреть здесь: http://drupal.org/update/theme/6/7
upd: русский перевод всех изменений от adubovskoy: http://www.drupal.ru/node/37603

Источник: http://www.drupal.ru/node/40712

Добавить комментарий к записи "Конвертим тему из Drupal 6 в семерку. Что новенького?"

Чтобы комментировать, необходимо войти в систему.

© 2009 Обзор CMS