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

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

Upload: alexander-danilenko

Post on 16-Jun-2015

860 views

Category:

Technology


2 download

DESCRIPTION

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

TRANSCRIPT

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