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

Прислано: restyler

вс, 21/02/2010 - 14:06

Другие статьи по теме:

этот пост - копипаст с моего блога 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

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано Алешка в вс, 21/02/2010 - 16:44.

Очень любопытно :-) Судя по обзору, в новом релизе D7 все становится более логично и единообразно. Это радует.
Спасибо, restyler.


Опубликовано adubovskoy в вс, 21/02/2010 - 22:19.

http://www.drupal.ru/node/37603 - я делал полный перевод с д.орг три месяца назад, можете ознакомиться :)


Опубликовано FORTIS в вс, 21/02/2010 - 22:30.

парни, спасибо за обзоры интересно почитать


Опубликовано F10 в пн, 22/02/2010 - 00:00.

"restyler" написал(а):

Ох, вот это мне по душе. Теперь нет переменной $mission, теперь нет переменной $footer_message, теперь нет переменной $search_box. Хочешь миссию сайта вывести - есть регион highlight, суем туда блок с миссией. Хочешь поисковую форму - суем в любой регион поиск.

- это политика Drupal. C каждой новой версией, превращать его все больше в конструктор, и все меньше заточенного под что-то функционала. Еще бы вместо таксономии Node Reference сделали и все. Хотя это уже оффтоп.
И еще оффтопа, сейчас не рано ли поднимать личный блог на семерке, с какими проблемами сталкивался?


Опубликовано FORTIS в пн, 22/02/2010 - 08:35.

простенький можно =)
тему найти рабочую трудно, а так - минимум функционала работает


Опубликовано restyler в вт, 23/02/2010 - 07:40.

"F10" написал(а):

И еще оффтопа, сейчас не рано ли поднимать личный блог на семерке, с какими проблемами сталкивался?

а пре-альфе лично я сталкивался со многими серьезными багами, начиная от огромных полотен сообщений об ошибках, кончая неработающими линками прямо в админ секции, и никому бы не посоветовал использовать такое для каких-то целей кроме тестирования и изучения.

на альфе2 - личный блог - думается уже можно попробовать, но будут определенные проблемы с доп модулями.


Опубликовано PVasili в вт, 23/02/2010 - 07:51.

adubovskoy поправьте у себя меню .tpl-topnav ul.menu {left:550px; ...} (примерно)


Опубликовано restyler в вт, 23/02/2010 - 07:55.

"adubovskoy" написал(а):

http://www.drupal.ru/node/37603 - я делал полный перевод с д.орг три месяца назад, можете ознакомиться :)

добавил в свой текст, спасибо!


Опубликовано adubovskoy в вт, 23/02/2010 - 08:51.

"PVasili" написал(а):

поправьте у себя меню .tpl-topnav ul.menu {left:550px; ...} (примерно)

вообще мы его просто с небольшим отступом от лого сделали, а вам, как я понял, больше нравится выравнивание по правому краю (что в общем логично и правильно). За рекомендации спасибо - присмотрюсь как лучше, подправлю возможно.


Опубликовано orangeudav в вт, 23/02/2010 - 10:52.

спасибо за обзор!


Опубликовано restyler в вт, 23/02/2010 - 11:10.

"adubovskoy" написал(а):

вообще мы его просто с небольшим отступом от лого сделали, а вам, как я понял, больше нравится выравнивание по правому краю (что в общем логично и правильно). За рекомендации спасибо - присмотрюсь как лучше, подправлю возможно.

посмотрите в chrome4, наползает


Опубликовано adubovskoy в вт, 23/02/2010 - 13:45.

"restyler" написал(а):

посмотрите в chrome4, наползает

а. теперь понял. спасибо огромное вам и PVasili!, подправим...


Опубликовано Valeratal в вт, 23/02/2010 - 14:34.

спасибо. Будет актуально при переводе на 7-ку


Опубликовано ALT в вт, 23/02/2010 - 23:59.

Полезно, в закладки :)


Новое на сайте

Ссылки партнёров