Екатерина Маршалкина - panels & page manager in drupal 8
TRANSCRIPT
Panels & Page Manager in Drupal 8
Катя Маршалкина
> Катя Маршалкина> Drupal-разработчик
Уровень: два дрисаГород: уточняется…
https://www.drupal.org/u/kalabro [email protected] Twitter: @kalabro
API для работы со страницей в ядре.Взгляд разработчика.
https://www.drupal.org/developing/api/8/render/pipeline
PageVariantInterfaceУбийца hook_page_build / hook_page_alter
https://www.drupal.org/node/2357755
{Some}PageVariant получает на вход основной динамический контент и превращает его в рендер-массив типа '#type' => 'page’. Ядро поставляется с SimplePageVariant и BlockPageVariant. Один из подвидов DisplayVariant.
Чтобы создать CustomPageVariant• Отнаследоваться от VariantBase / BlockPageVariant• Внести необходимые изменения в ::build()• Подписаться на событие SELECT_PAGE_DISPLAY_VARIANT
См. пример реализации в • /core/modules/system/tests/modules/display_variant_test• http://cgit.drupalcode.org/context/tree/src/Plugin/
DisplayVariant/ContextBlockPageVariant.php?h=8.x-0.x
Блоки. Снова в моде.
The Block System is Finally Useful in Drupal 8.“ https://drupalize.me/blog/201403/block-system-finally-useful-drupal-8
• Удобное Block Plugin API• Есть alter-хуки• Переработанный UI• Переиспользуемые• Экспортируемые• Работает с регионами темы• Слабое место: настройки Visibility
Page ManagerЗависимости: Ctools, Blocks
Display Variants для Page Manager
• HttpStatusCodeDisplayVariant
• PageBlockDisplayVariant
(не путать с PageVariantInterface)• PanelsDisplayVariant
S
Sidebar First Main Content
1. \Drupal\block\Plugin\DisplayVariant\BlockPageVariant (про который говорили вначале)
Block…
Block…
Block…
Block…
Block…
S
Sidebar First Main Content
1. \Drupal\block\Plugin\DisplayVariant\BlockPageVariant (про который говорили вначале)
Top
Bottom
2. \Drupal\page_manager\Plugin\DisplayVariant\PageBlockDisplayVariantBlock…
Block…
Block…
Block…
Block…Block…
PanelsЗависимости: Ctools, Layout Plugin
Что случилось с Panels
• Content Panes → Core Blocks• Custom Layout Repository→ General Layout Plugin
support (https://www.drupal.org/project/layout_plugin)
• Built-in layouts → Radix Layouts, Bootstrap Layouts (https://www.drupal.org/project/radix_layouts, https://www.drupal.org/project/bootstrap_layouts)
Radix Layouts
Current mood: почти нет настроек, но работает.
Routes
Blocks
Contexts
Conditions
Display Variant
Interface
Configs
Page Manager
ctools
P A
EN
L S
• Концепция такая же как в семёрке• Переписано с максимальным
использованием ядра восьмёрки• Упрощённая функциональность• Сырой интерфейс• Пользоваться можно (после
прослушивания данного доклада)
Итого
Ссылки
• Render Pipeline http://wimleers.com/talk/drupal-8-render-pipeline
• Panels and Page Manager in Drupal 8 https://pantheon.io/drupal-8/panels-and-page-manager
• Оффтоп: Display Suitehttps://www.drupal.org/project/ds
Золотой спонсор:
Спасибо!
При поддержке:
Серебряный спонсор:
Зовите на конференцию@kalabro
Читайте Drupal-дайджестhttp://habrahabr.ru/post/271445/