Панели Шрёдингера или как стоит использовать модуль Panelizer

1,865 views

Published on

Панели Шрёдингера или как стоит использовать модуль Panelizer

Published in: Technology
1 Comment
4 Likes
Statistics
Notes
No Downloads
Views
Total views
1,865
On SlideShare
0
From Embeds
0
Number of Embeds
247
Actions
Shares
0
Downloads
13
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide

Панели Шрёдингера или как стоит использовать модуль Panelizer

  1. 1. Панели Шрёдингера Или как стоит использовать модуль Panelizer Александр Даниленко
  2. 2. Глоссарий ● ● ● ● ● Entity (cущность) — всё, что можно расширить полями и показывать как контент. Panel layout (лейаут) — HTML с “дырками”, в которые выводится определенный контент. Как шаблон (template), но не содержит информации о том, что выводится внутри, просто представляет места для вывода. Layout region (регион) — та самая “дырка”, в которую мы выводим необходимый нам контент. По аналогии с регионами темы. View mode (тип представления) — способ показа сущности. Например: Анонс, Полный контент, и т.д. Сайтбилдер — Drupal разработчик, собирающий проект из готовых модулей и не желающий или не умеющий писать свои модули.
  3. 3. Что это такое вообще? Возможность использования панелей для вывода любых сущностей и любого их типа представления (view mode) Теперь вы можете темизировать панели в то время, когда вы темизируете панели. Наркомания Drupal-way.
  4. 4. Немного теории. Как Drupal видит страницу? ● Блоки не зависят от контента (нет понятия контекста) ● Блок можно отобразить только в одном регионе ● Чтобы реализовать логику показа/скрытия блоков на основе контента - нужно писать PHP код. PHP код в админке - всегда пичалька. HEADER SIDEBAR LEFT CONTENT FOOTER SIDEBAR RIGHT
  5. 5. Немного теории. Как дизайнеры видят страницу? ● Вся страница является цельным отображением контента, где любой элемент может зависеть от показываемой страницы (от котнекста показа). ● Контекстом для показа может быть текущий пользователь, текущий язык, значение полей или роль текущего пользователя. Да всё что угодно. CONTENT
  6. 6. Немного теории. Как Я вижу страницу? ● Вверху - основные элементы шапки, одинаковые для всех страниц. Например: логотип, название сайта, слоган. ● Контент - панель с некоторым количеством регионов. ● Футер - копирайты. BRANDING CONTENT COPYRIGHT
  7. 7. Вывод
  8. 8. Зачем? Мне и так не плохо Больше возможностей при редактировании контента ● ● ● Вся мощь панелей: ○ Вставка всего чего угодно и куда угодно (блоки, кастомный текст, представления, элементы страницы, всё то, что можно вставить в любую панель + поля из сущности) ○ Можно создать уникальный layout, практически не прибегая к коду (Flexible ). ○ Добавление классов к полям через админку (удобно когда используем сетку или CSS фреймворк) ○ In-pace editng Вся мощь модуля Stylizer Переопределение настроек только для одной сущности
  9. 9. Пример сложной задачи Контент содержит элементы, которые необходимо растянуть на 100% по ширине текущего экрана. В обычной ситуации - регион с контентом фиксируется по ширине и без костылей в подобном случае не обойтись. Можно наделать новых регионов в теме, но использовать их только один раз на одной странице. Что не есть оптимизация возможностей.
  10. 10. Пример сложной задачи Контент содержит элементы, которые необходимо растянуть на 100% по ширине текущего экрана. В обычной ситуации - регион с контентом фиксируется по ширине и без костылей в подобном случае не обойтись. Можно наделать новых регионов в теме, но использовать их только один раз на одной странице. Что не есть оптимизация возможностей.
  11. 11. Когда использование Panelizer оправдано? ● ● ● ● ● ● Когда мы — сайтбилдер Когда мы не хотим создавать кучу шаблонов для разных представлений контента Когда у нас проект типа: ○ Набор Landing страниц ○ Визитка ○ Проект с минимумом логики и максимумом разнообразного контента Когда мы разрабатываем тему с нуля (кастомная тема) Когда тип материала с одним набором полей необходимо представлять в нескольких вариациях (цеплять разные лейауты для определенных нод одного и того же типа) с возможностью выбора Когда используем CSS фреймворк ○ Можно и без сетки, но придётся писать много стилей, вместо обычного добавления классов элементам.
  12. 12. Когда ещё? ● ● ● ● У Panelizer отличная интеграция с модулем Features - экспортирует лейауты и настройки вывода для определенных типов сущностей. Если мы разрабатываем проекты по методологии повторного использования кода. Если делаем собственный дистрибутив, установочный профиль или фичу, которую будем использовать на нескольких проектах. Если делаем тему на продажу. На выходе получаем кучу кастомизабельности сайта при минимуме движений по изменению представления контента.
  13. 13. Panelizer - панацея от всех бед везде и всегда? Нет
  14. 14. Когда использование Panelizer не оправдано? ● ● ● ● Когда мы делаем проект с маленьким бюджетом и морока с панелями не оплачивается Когда расширяемость проекта совершенно не важна Когда контент вне региона с контентом никак не связан с основным контентом Когда не хотим писать свою тему, а используем какую нибудь базовую (Zen, Omega, Adaptivetheme, etc.)
  15. 15. Как всё таки всё это сделать? Прототипизирование ● Нудный процесс рисования прототипов (мокапов, скетчей, и т.д.) ● Для чего: ○ Чтобы охватить как можно более оптимальное количество элементов, которые должны быть внутри главной панели с контентом.
  16. 16. Правки в теме ● Убираем ширину у страницы и региона с контентом ○ Легче всего использовать сетку ● Убираем в теме регионы с сайдбарами
  17. 17. Создание полей со ссылками ● Добавляем несколько block-reference полей CONTENT (THEME’S REGION) field_before_content field_sidebar_1 field_body field_after_content field_sidebar_2
  18. 18. Настройка Panelizer
  19. 19. Настройка Panelizer
  20. 20. Настройка Panelizer
  21. 21. Настройка Panelizer
  22. 22. Настройка Panelizer
  23. 23. Настройка Panelizer
  24. 24. Настройка Panelizer
  25. 25. Настройка Panelizer
  26. 26. Результат
  27. 27. Создание своего лейаута ● Изменяем THEME.info ○ plugins[panels][layouts] = panels/layouts ● Чистим кеш ● Создаём файлы: ○ ○ ○ ○ THEME / panels / layouts / layout_1/ layout_1.inc THEME / panels / layouts / layout_1/ layout_1.css THEME / panels / layouts / layout_1 / layout_1.png THEME / panels / layouts / layout_1 / layout_1.tpl.php
  28. 28. Создание своего лейаута layout_1.inc
  29. 29. Создание своего лейаута layout_1.inc
  30. 30. Результат
  31. 31. Ссылки ● Курс по Panels + Panelizer от Drupalize.me ● Дистрибутив Drupal, придерживающийся идеи “панели везде”: https://drupal.org/project/panopoly ● Куча готовых лейаутов: https://drupal.org/sandbox/apmsooner/1805170 ● Ещё больше лейаутов: https://drupal.org/project/panels_extra_layouts
  32. 32. Настало время приключений демо! DEMOтивашки

×