В чем разница между менеджером страниц и панелями?

31

Я пишу этот вопрос, потому что я вижу замешательство во всем сообществе Drupal по поводу того, «что такое менеджер страниц» и «что такое панели».

Letharion
источник

Ответы:

48

CTools

В Ctools есть подмодуль под названием «Диспетчер страниц». Этот модуль по своей сути является графическим пользовательским интерфейсом для hook_menu . Это позволяет вам либо создавать новые пути в системе, либо перенимать некоторые из тех, которые предоставляет Core.

Менеджер страниц

Как только менеджер страниц управляет вами, он может делать с ним несколько разных вещей. Из коробки он может предоставить вам перенаправления. Один из распространенных вариантов использования для этого - запретить доступ к узлам, у которых отсутствует надлежащая тематика, поскольку они не предназначены для самостоятельного просмотра, например, «Факты» или «Узлы изображений». Другой способ - перенаправить из представления термина к поиску Solr с тем же термином.

Одним из основных преимуществ менеджера страниц является то, что он вводит способ работы с «Контекстом», который не следует путать с модулем « Контекст» . Самое главное, что панели, которые являются «немного более умными блоками», могут объявлять свои зависимости системе, и у них есть фактические аргументы (называемые контекстами), передаваемые в стиле внедрения зависимостей .

Для тех, кто не знаком с DI, но знаком с Drupal, это, например, позволяет вам никогда больше не использовать menu_get_object, чтобы получить «Этот единственный узел, указанный в пути меню». Что если в пути более одного узла? Или если вы действительно хотите основать блок на узле из ссылки на сущность? Это становится проблемой с менеджером страниц, делая все блоки (панели) намного более гибкими и многократно используемыми.

Панели

Однако наиболее распространенный вариант использования - это передача макета и рендеринга пути панелям . Панели предоставляют инструменты для определения макетов, как в коде, так и непосредственно в браузере, и позволяют размещать контент непосредственно в браузере.

Вывод

Оба эти модуля являются очень мощными и относительно плохо документированными, что привело к разочарованию многих людей. Понимание того, как использовать их, однако , хорошо стоит, если вы строите больше сайт, тем более , что их подход к работе с «страницы», а также расположение, внешний вид , как они собираются в Drupal 8 ядро, любезно EclipseGC «s инициативы СОСНЫ , Соответствующий проект песочницы

дальнейшее чтение

Примеры других интересных вещей, которые можно сделать с помощью этих инструментов:

  1. Если в качестве инструмента секционирования используется Context , панели могут работать вместе с ним и использоваться как инструмент макета.
  2. Панели могут взаимодействовать с Display Suite, чтобы обеспечить его приятным перетаскиванием пользовательского интерфейса.
  3. Диспетчер страниц и контекстное администрирование могут помочь в создании чувствительных к контексту меню и других полезных вещей для администраторов / редакторов сайтов.
Letharion
источник
3
Я никогда не понимал / не использовал менеджер страниц - это здорово знать, для чего он (в основном). Спасибо за краткое описание!
Чапабу
2
$page_data = page_manager_get_current_page()где деньги, особенно$page_data['handler']
mpdonadio
1

В Drupal 7 менеджер страниц был основой модуля Panels .

« Learn Page manager » - это интересный (и потрясающий) набор видеороликов. Они содержат различные темы, связанные с модулем « Панели ». Вот краткое изложение всего набора видео по этой теме (цитата по ссылке выше):

  • Диспетчер страниц позволяет гибко и последовательно собирать и управлять контекстной информацией. Это важная часть построения инфраструктуры на сайтах Drupal, и вы должны знать, как использовать этот модуль.
  • Сериал предназначен для опытных разработчиков Drupal.
  • Эпизоды 1, 2 и 3 вводят самые основные понятия, такие как пользовательские страницы, варианты, правила выбора и (в некоторой степени) контекстные объекты.
  • Эпизоды 4, 5, 6 и 7 рассказывают о панелях с акцентом на интеграцию представлений, а также некоторыми словами об эффективном кэшировании.
  • Эпизоды 8 и 9 об управлении доступом, пунктах меню и, что не менее важно, малоизвестном, но очень полезном модуле контекстного администрирования.
  • Эпизоды 10 и 11 рассказывают больше об использовании контекстных объектов в менеджере страниц, в том числе об использовании Views в качестве контекста. Это, imho, где настоящая сила в Page Manager.
  • Эпизоды 12 и 13 собирают различные фрагменты, такие как использование панелей для простой перестройки формы редактирования узла, настройки импорта / экспорта и некоторые дополнительные модули, которые можно использовать с менеджером страниц.

Обратитесь к Объяснению Панелей: Обзор для разработчиков Drupal для другого отличного объяснения модуля Панелей.

Будущее Page Manager

В Drupal 8 Page Manager стал отдельным модулем, а раньше (до Drupal 7) он был частью модуля CTools . Вот еще несколько цитат со страницы проекта (связанной с D8):

Он поддерживает создание новых страниц и позволяет размещать блоки на этой странице.

Как и менеджер страниц Drupal 7, он предоставляет концепцию «вариантов страницы», каждый из которых имеет свои собственные условия выбора.

Кроме того, он может использоваться для захвата существующей страницы, например, переопределение / node /%, чтобы изменить то, что отображается при просмотре узла.

Она использует ядро Conditions, Contextи BlocksAPI - интерфейсы для достижения этой цели .

Pierre.Vriens
источник