Вы здесь

Для каких проектов нужен panels?

0

Заметил определенную популярность panels.
здесь подробно описано его применение в лендингах
В каких типах проектов он реально дает большее удобство и скорость в разработке?
А в каких нет?
Что лучше использовать, Panels или Display Suite?

Версия Drupal: 
7.x
Связанные проекты: 
PanelsDisplay Suite
Вопрос задан 14.01.2015 - 08:34
Аватар пользователя Dima
Dima
18

Ответы

8

Буквально вчера-позавчера мы в чатике с ребятами обсуждали Panels. Я всё время делал на Display Suite, попробовал последнюю версию Panels и меня зацепил In-Place editor, который позволяет макет двигать визуально с контентом по страничке. В итоге обсуждения, и несколько часов проведенных в гугле, я решил остаться с Display Suite. В интернете, при гуглении "Panels or Display Suite" попадается очень много статей которые призывают не использовать Panels.

Основные сравнения такие:

  • Panels гибче из коробки чем DS. Он позволяет менять отображение всему что есть и чего нет на сайте, DS только того что есть. Но не стоить думать DS слаб, DS делает многие вещи которые Panels не умеет по определению, и если использовать Panels по-уму, то он будет в связке с DS, так как некоторые вещи без DS просто не решатся.
  • В Panels можно делать макеты прямо из админки, просто кликая мышкой и двигая регионы с гибким макетом. Но у этого есть обратная сторона медали — кликать придётся очень много, в добавок разметка будет иметь дерево из 100500 div обёрток. Чтобы всё это избежать, надо делать свои макеты, а объявляются они несколько дольше нежели в DS, и DS тут урывает своё.
  • В DS очень легко менять классы и обертку всего и вся, причем сразу из админки. В Panels придётся либо писать свой макет, либо свой формат вывода, что по сути ничего не меняет — доходит до кода, хоть и разметки. А когда дело доходит до кода — DS по умолчанию победитель.
  • В Panels, для добавления в регион, допустим поля, надо вызвать котекстное меню региона, нажать "добавить содержимое", выбрать раздел, выбрать поле, пройти шага 2-3 с базовыми настройками, перетащить куда нужно добавленное поле, сохранить. В DS достаточно просто перенести нужное поле и сохранить. А новое добавляется куда легче и быстрее. Panels визуально понятнее в какой регион ты пихаешь, в DS это всё родное и выглядит привычно, быстрее и несколько гибче. Слова разработчика DS:

Добавление 10 блоков на каждую страницу в Panels очень раздражающее занятие, и черезвычайно простое в DS.

  • В DS мы можем создавать различные виды отображения, отличные от стандартных 'Полный материал', 'Анонс'. И каждый будет иметь свой вид (На данном сайте это прослеживается, на главной вид frontpage, на странице вопросов teaser, а уже внутри full). В Panels по-сути один вариант 'Полный'. Отображение анонса Panels уже не сделать, тут подключается DS, и мы возвращаемся к тому что написано в пункте 1.
  • Panels требует больше усилий для достижения цели. Больше вариантов - больше решений - больше кликов. В DS всё что связано с отображением, делается в десятки раз быстрее.
  • Надо понимать что Panels стоит в иерархии ниже, грубо говоря, Panels это надстрока над DS, поэтому Panels не может решить всех задач отображения, как это может DS.
  • У Panels есть варианты (Variants), чего нету у DS. Т.е. Panels позволяет показывать одну и ту же страницу по разному для разных ролей, языков и т.д. В DS можно сделать, но это будет несколько посложнее чем в Panels.
  • Panels позволяет по контексту подгружать дополнительные данные, которые могут быть использованы в отображении, в DS придётся их получать руками и кодом.
  • Panels имеет варианты (Variants см.п. 9) и правила отображений, чего нету в DS.
  • У Panels встроеный механизм кэширование, причем, достаточно гибкий и хороший, у DS кеширование делается системным друпальным кешем, или же инмы модулями.

В заключении:
1. Panels нагружен css и обёртками (нагрузка на браузер).
2. Panels тяжелее в рендере (нагрузка на сервер).
3. У них различается рендер содержимого в HTML: DS - простой, Panels - комплексный, что выливается в кучу обертки.

Надо понимать что DS и Panels выполняют одну и ту же задачу (почти), и каждый уживется где-то в своём мирке. Многие проблемы Panels достаточно несложно решаются, в особенности море обертки и css, их очень легко привести к чистому виду, что никаких следов панелей не останется тут я давал ответ как сделать свой макет, и это есть решение для чистки. Но то же самое по сути не нужно для DS, а если потребуется, делается значительно быстрее и легче.

Как мне кажется, Panels удачно приживется на посадочных страницах (Landing pages) ввиду того что можно двигать всё визуально прямо на странице. Ненадо выдумывать где хранить данные, в нодах, терминах, блоках или ещё где, основную часть можно сопокойно хранить в панелях или mini-panels, и использовать сколько душе угодно раз. На более крупных сайтах врятли в нем есть необходимость, особенно где нужна детальная проработка интерфейса и вывода элементов.

Мой последний проект я решил сделать на Panels, в итоге я, ожидая снижения количества файлов в теме, получил ровно такое же количество и даже больше. При этом еще не хило накликал в панелях, чего не нужно бы было делать в DS. И это ещё при том, что я не заменял друпаловские регионы с блоками на панели, что вылилось бы в пытку менять блоки на сайте.

Если где ошибся, меня поправят.

Ответ дан 14.01.2015 - 09:32
Аватар пользователя Niklan
Niklan
445
0

Хорошая статья, в которой автор рассказывает почему Стэнфордский университет делает выбор в пользу модулей Context и Display Suite вместо Panels https://swsblog.stanford.edu/blog/why-not-panels

Ответ дан 16.01.2015 - 01:37

для меня Context вполне во многом а вот Panopoly это как фотоный двигатель все слышали но не кто не видел...

Комментарий оставлен 21.01.2015 - 23:26