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

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

description

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

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

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

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

Александр Даниленко

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

Глоссарий● Entity (cущность) — всё, что можно расширить полями и показывать

как контент.● Panel layout (лейаут) — HTML с “дырками”, в которые выводится

определенный контент. Как шаблон (template), но не содержит информации о том, что выводится внутри, просто представляет места для вывода.

● Layout region (регион) — та самая “дырка”, в которую мы выводим необходимый нам контент. По аналогии с регионами темы.

● View mode (тип представления) — способ показа сущности. Например: Анонс, Полный контент, и т.д.

● Сайтбилдер — Drupal разработчик, собирающий проект из готовых модулей и не желающий или не умеющий писать свои модули.

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

Что это такое вообще?

Возможность использования панелей для вывода любых сущностей и любого их типа представления (view mode)

Теперь вы можете темизировать панели в то время, когда вы темизируете панели. Наркомания Drupal-way.

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

Немного теории.Как Drupal видит страницу?

● Блоки не зависят от контента (нет понятия контекста)

● Блок можно отобразить только в одном регионе

● Чтобы реализовать логику показа/скрытия блоков на основе контента - нужно писать PHP код. PHP код в админке - всегда пичалька.

HEADER

FOOTER

SIDEBAR LEFT

SIDEBAR RIGHTCONTENT

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

CONTENT

Немного теории.Как дизайнеры видят страницу?

● Вся страница является цельным отображением контента, где любой элемент может зависеть от показываемой страницы (от котнекста показа).

● Контекстом для показа может быть текущий пользователь, текущий язык, значение полей или роль текущего пользователя. Да всё что угодно.

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

Немного теории.Как Я вижу страницу?

● Вверху - основные элементы шапки, одинаковые для всех страниц. Например: логотип, название сайта, слоган.

● Контент - панель с некоторым количеством регионов.

● Футер - копирайты.

BRANDING

COPYRIGHT

CONTENT

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

Вывод

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

Зачем? Мне и так не плохо

Больше возможностей при редактировании контента● Вся мощь панелей:

○ Вставка всего чего угодно и куда угодно (блоки, кастомный текст, представления, элементы страницы, всё то, что можно вставить в любую панель + поля из сущности)

○ Можно создать уникальный layout, практически не прибегая к коду (Flexible ).

○ Добавление классов к полям через админку (удобно когда используем сетку или CSS фреймворк)

○ In-pace editng● Вся мощь модуля Stylizer● Переопределение настроек только для одной

сущности

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

Пример сложной задачи

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

Можно наделать новых регионов в теме, но использовать их только один раз на одной странице. Что не есть оптимизация возможностей.

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

Пример сложной задачи

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

Можно наделать новых регионов в теме, но использовать их только один раз на одной странице. Что не есть оптимизация возможностей.

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

Когда использование Panelizer оправдано?● Когда мы — сайтбилдер● Когда мы не хотим создавать кучу шаблонов для разных

представлений контента● Когда у нас проект типа:

○ Набор Landing страниц○ Визитка○ Проект с минимумом логики и максимумом разнообразного

контента● Когда мы разрабатываем тему с нуля (кастомная тема)● Когда тип материала с одним набором полей необходимо

представлять в нескольких вариациях (цеплять разные лейауты для определенных нод одного и того же типа) с возможностью выбора

● Когда используем CSS фреймворк○ Можно и без сетки, но придётся писать много стилей, вместо

обычного добавления классов элементам.

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

Когда ещё?● У Panelizer отличная интеграция с модулем Features - экспортирует

лейауты и настройки вывода для определенных типов сущностей.● Если мы разрабатываем проекты по методологии повторного

использования кода.● Если делаем собственный дистрибутив, установочный профиль или

фичу, которую будем использовать на нескольких проектах.● Если делаем тему на продажу. На выходе получаем кучу

кастомизабельности сайта при минимуме движений по изменению представления контента.

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

Panelizer - панацея от всех бед везде и всегда?

Нет

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

Когда использование Panelizer не оправдано?● Когда мы делаем проект с маленьким бюджетом и морока с панелями

не оплачивается● Когда расширяемость проекта совершенно не важна● Когда контент вне региона с контентом никак не связан с основным

контентом● Когда не хотим писать свою тему, а используем какую нибудь базовую

(Zen, Omega, Adaptivetheme, etc.)

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

Как всё таки всё это сделать?Прототипизирование

● Нудный процесс рисования прототипов (мокапов, скетчей, и т.д.)

● Для чего:○ Чтобы охватить как

можно более оптимальное количество элементов, которые должны быть внутри главной панели с контентом.

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

Правки в теме● Убираем ширину у страницы и региона с контентом

○ Легче всего использовать сетку● Убираем в теме регионы с сайдбарами

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

Создание полей со ссылками

● Добавляем несколько block-reference полейCONTENT (THEME’S REGION)

field_before_content

field_body field_sidebar_2

field_after_content

field_sidebar_1

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

Настройка Panelizer

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

Настройка Panelizer

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

Настройка Panelizer

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

Настройка Panelizer

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

Настройка Panelizer

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

Настройка Panelizer

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

Настройка Panelizer

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

Настройка Panelizer

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

Результат

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

Создание своего лейаута

● Изменяем 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

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

Создание своего лейаутаlayout_1.inc

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

Создание своего лейаутаlayout_1.inc

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

Результат

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

Ссылки

● Курс по Panels + Panelizer от Drupalize.me● Дистрибутив Drupal, придерживающийся идеи

“панели везде”: https://drupal.org/project/panopoly● Куча готовых лейаутов:

https://drupal.org/sandbox/apmsooner/1805170● Ещё больше лейаутов:

https://drupal.org/project/panels_extra_layouts

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

Настало время приключений демо!

DEMOтивашки

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