Your SlideShare is downloading. ×
0
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Panels как философия - Alexander Danilenko

220

Published on

Drupal не был бы столь популярной CMS без мощи таких модулей, как Views и Panels. Использование последнего будет рассмотрено со всех сторон, будут рассказаны лучшие практики использования, а так же …

Drupal не был бы столь популярной CMS без мощи таких модулей, как Views и Panels. Использование последнего будет рассмотрено со всех сторон, будут рассказаны лучшие практики использования, а так же практические примеры. Расскажу о принципе построения проектов, к которому со временем пришёл и который стал для меня универсальной основой для построения практически любого функционала на Drupal.

Published in: Internet
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
220
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Panels как философия Или как стоит использовать модуль Panelizer Александр Даниленко
  • 2. Глоссарий ● Сайтбилдер — Drupal разработчик, собирающий проект из готовых модулей и не желающий или не умеющий писать свои модули. ● Entity (cущность) — всё, что можно расширить полями и показывать как контент. ● Panel layout (лейаут) — шаблон, при помощи которого выводится определенный контент. ● Layout region (регион) — место для контента, который выводится внутри шаблона. ● Ctools Content type (CCT) — Контент, который передаётся в регион лейаута панелей. Это может быть: поле, блок, вьюшка, кастомный CCT и т.д. ● Panelizer default panel — расположение определенных CCT в регионах. ● View mode (тип представления) — способ показа сущности. Например: Анонс, Полный контент, и т.д.
  • 3. WTF? Возможность использования панелей для вывода любых сущностей и любого их типа представления (view mode) Теперь вы можете темизировать панели в то время, когда вы темизируете панели. Наркомания Drupal-way.
  • 4. Немного теории. Как Drupal видит страницу? ● Блоки не зависят от контента (нет понятия контекста) ● Блок можно отобразить только в одном регионе ● Чтобы реализовать логику показа/скрытия блоков — нужно писать PHP код в админке. ● PHP код в админке — это всегда пичалька. Не делайте так никогда. Вообще. HEADER FOOTER SIDEBAR LEFT SIDEBAR RIGHT CONTENT
  • 5. CONTENT Немного теории. Как дизайнеры видят страницу? ● Вся страница является цельным отображением контента, где любой элемент может зависеть от показываемой страницы (от котнекста показа). ● Контекстом для показа может быть текущий пользователь, текущий язык, значение полей текущей сущности, значение поля связанного с текущей сущностью и т.д. ● Даже вьюшки.
  • 6. Немного теории. Как Я вижу страницу? ● Вверху - основные элементы шапки, одинаковые для всех страниц. Например: логотип, название сайта, слоган. ● Контент - панель с некоторым количеством регионов. ● Футер - копирайты. BRANDING COPYRIGHT CONTENT
  • 7. Вывод
  • 8. Зачем? Мне и так не плохо Больше возможностей при редактировании контента ● Вся мощь панелей: ○ Вставка всего чего угодно и куда угодно (блоки, кастомный текст, вьюшки, элементы страницы (сайтнейм, бредкрамбы, лого, слоган и т.д.). Проще говоря — всё то, что можно вставить в любую панель + поля из вашей сущности. ○ Можно создать уникальный лейаут, практически не прибегая к коду (Flexible). ○ Добавление классов к полям через админку (удобно когда используем сетку или CSS фреймворк) ○ In-pace editng ● Переопределение настроек только для одной сущности.
  • 9. Пример сложной задачи Контент содержит элементы, которые необходимо растянуть на 100% по ширине текущего экрана. В обычной ситуации - регион с контентом фиксируется по ширине и без костылей в подобном случае не обойтись. Можно наделать новых регионов в теме, но использовать их только один раз на одной странице. Что не есть оптимизация возможностей.
  • 10. Пример сложной задачи Контент содержит элементы, которые необходимо растянуть на 100% по ширине текущего экрана. В обычной ситуации - регион с контентом фиксируется по ширине и без костылей в подобном случае не обойтись. Можно наделать новых регионов в теме, но использовать их только один раз на одной странице. Что не есть оптимизация возможностей.
  • 11. Когда использование Panelizer оправдано? ● Когда мы — сайтбилдер. ● Когда мы не хотим создавать кучу шаблонов для разных представлений контента. ● Когда у нас проект типа: ○ Набор Landing страниц ○ Проект с минимумом логики и максимумом разнообразного контента ● Когда мы разрабатываем тему с нуля (кастомная тема). ● Когда тип материала с одним набором полей необходимо представлять в нескольких вариациях (цеплять разные лейауты для определенных нод одного и того же типа) с возможностью выбора на каждой ноде собственного лейаута. ● Когда используем CSS фреймворк ○ Можно и без сетки, но придётся писать много стилей, вместо обычного добавления классов элементам.
  • 12. Когда ещё? ● У Panelizer отличная интеграция с модулем Features - экспортирует лейауты и настройки вывода для определенных типов сущностей. ● Если мы разрабатываем проекты по методологии повторного использования кода. ● Если делаем собственный дистрибутив, установочный профиль или фичу, которую будем использовать на нескольких проектах. ● Если делаем тему на продажу. На выходе получаем кучу кастомизабельности сайта при минимуме движений по изменению представления контента.
  • 13. Panelizer - панацея от всех бед везде и всегда? Нет
  • 14. Когда использование Panelizer не оправдано? ● Когда мы делаем проект с маленьким бюджетом и морока с панелями не оплачивается. ● Когда расширяемость проекта совершенно не важна. ● Когда контент вне региона с контентом никак не связан с основным контентом. ● Когда не хотим писать свою тему, а используем какую нибудь базовую (Zen, Omega, Adaptivetheme, etc.)
  • 15. Как всё таки всё это сделать? Прототипизирование ● Нудный процесс рисования прототипов (мокапов, скетчей, и т.д.) ● Для чего: ○ Чтобы охватить как можно более оптимальное количество элементов, которые должны быть внутри главной панели с контентом.
  • 16. Правки в теме ● Убираем ширину у страницы и региона с контентом ○ Легче всего использовать сетку ● Убираем в теме регионы с сайдбарами
  • 17. Создание полей со ссылками ● Добавляем несколько block-reference полей CONTENT (THEME’S REGION) field_before_content field_body field_sidebar_2 field_after_content field_sidebar_1
  • 18. Настройка Panelizer
  • 19. Настройка Panelizer
  • 20. Настройка Panelizer
  • 21. Настройка Panelizer
  • 22. Настройка Panelizer
  • 23. Настройка Panelizer
  • 24. Настройка Panelizer
  • 25. Настройка Panelizer
  • 26. Результат
  • 27. Создание своего лейаута ● Изменяем *.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. Создание своего лейаута layout_1.inc
  • 29. Создание своего лейаута layout_1.inc
  • 30. Результат
  • 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. So long, and thanks for all the fish RTFM Александр Даниленко

×