Екатерина Маршалкина - panels & page manager in drupal 8

25
Panels & Page Manager in Drupal 8 Катя Маршалкина

Upload: drupalsib

Post on 24-Jan-2017

593 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Екатерина Маршалкина - Panels & Page manager in Drupal 8

Panels & Page Manager in Drupal 8

Катя Маршалкина

Page 2: Екатерина Маршалкина - Panels & Page manager in Drupal 8

> Катя Маршалкина> Drupal-разработчик

Уровень: два дрисаГород: уточняется…

https://www.drupal.org/u/kalabro [email protected] Twitter: @kalabro

Page 3: Екатерина Маршалкина - Panels & Page manager in Drupal 8

API для работы со страницей в ядре.Взгляд разработчика.

Page 4: Екатерина Маршалкина - Panels & Page manager in Drupal 8

https://www.drupal.org/developing/api/8/render/pipeline 

Page 5: Екатерина Маршалкина - Panels & Page manager in Drupal 8
Page 6: Екатерина Маршалкина - Panels & Page manager in Drupal 8
Page 7: Екатерина Маршалкина - Panels & Page manager in Drupal 8
Page 8: Екатерина Маршалкина - Panels & Page manager in Drupal 8
Page 9: Екатерина Маршалкина - Panels & Page manager in Drupal 8

PageVariantInterfaceУбийца hook_page_build / hook_page_alter

https://www.drupal.org/node/2357755

Page 10: Екатерина Маршалкина - Panels & Page manager in Drupal 8

{Some}PageVariant получает на вход основной динамический контент и превращает его в рендер-массив типа '#type' => 'page’. Ядро поставляется с SimplePageVariant и BlockPageVariant. Один из подвидов DisplayVariant.

Page 11: Екатерина Маршалкина - Panels & Page manager in Drupal 8

Чтобы создать 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

Page 12: Екатерина Маршалкина - Panels & Page manager in Drupal 8

Блоки. Снова в моде.

Page 13: Екатерина Маршалкина - Panels & Page manager in Drupal 8

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 14: Екатерина Маршалкина - Panels & Page manager in Drupal 8

Page ManagerЗависимости: Ctools, Blocks

Page 15: Екатерина Маршалкина - Panels & Page manager in Drupal 8
Page 16: Екатерина Маршалкина - Panels & Page manager in Drupal 8

Display Variants для Page Manager

• HttpStatusCodeDisplayVariant

• PageBlockDisplayVariant

(не путать с PageVariantInterface)• PanelsDisplayVariant

Page 17: Екатерина Маршалкина - Panels & Page manager in Drupal 8

S

Sidebar First Main Content

1. \Drupal\block\Plugin\DisplayVariant\BlockPageVariant (про который говорили вначале)

Block…

Block…

Block…

Block…

Block…

Page 18: Екатерина Маршалкина - Panels & Page manager in Drupal 8

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…

Page 19: Екатерина Маршалкина - Panels & Page manager in Drupal 8

PanelsЗависимости: Ctools, Layout Plugin

Page 20: Екатерина Маршалкина - Panels & Page manager in Drupal 8

Что случилось с 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)

Page 21: Екатерина Маршалкина - Panels & Page manager in Drupal 8

Radix Layouts

Page 22: Екатерина Маршалкина - Panels & Page manager in Drupal 8

Current mood: почти нет настроек, но работает.

Page 23: Екатерина Маршалкина - Panels & Page manager in Drupal 8

Routes

Blocks

Contexts

Conditions

Display Variant

Interface

Configs

Page Manager

ctools

P A

EN

L S

• Концепция такая же как в семёрке• Переписано с максимальным

использованием ядра восьмёрки• Упрощённая функциональность• Сырой интерфейс• Пользоваться можно (после

прослушивания данного доклада)

Итого

Page 24: Екатерина Маршалкина - Panels & Page manager in Drupal 8

Ссылки

• 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

Page 25: Екатерина Маршалкина - Panels & Page manager in Drupal 8

Золотой спонсор:

Спасибо!

При поддержке:

Серебряный спонсор:

Зовите на конференцию@kalabro

[email protected]

Читайте Drupal-дайджестhttp://habrahabr.ru/post/271445/