этот пост – копипаст с моего блога 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 в семерку. Что новенького?"
Чтобы комментировать, необходимо войти в систему.