Я пишу этот вопрос, потому что я вижу замешательство во всем сообществе Drupal по поводу того, «что такое менеджер страниц» и «что такое панели».
источник
Я пишу этот вопрос, потому что я вижу замешательство во всем сообществе Drupal по поводу того, «что такое менеджер страниц» и «что такое панели».
CTools
В Ctools есть подмодуль под названием «Диспетчер страниц». Этот модуль по своей сути является графическим пользовательским интерфейсом для hook_menu . Это позволяет вам либо создавать новые пути в системе, либо перенимать некоторые из тех, которые предоставляет Core.
Менеджер страниц
Как только менеджер страниц управляет вами, он может делать с ним несколько разных вещей. Из коробки он может предоставить вам перенаправления. Один из распространенных вариантов использования для этого - запретить доступ к узлам, у которых отсутствует надлежащая тематика, поскольку они не предназначены для самостоятельного просмотра, например, «Факты» или «Узлы изображений». Другой способ - перенаправить из представления термина к поиску Solr с тем же термином.
Одним из основных преимуществ менеджера страниц является то, что он вводит способ работы с «Контекстом», который не следует путать с модулем « Контекст» . Самое главное, что панели, которые являются «немного более умными блоками», могут объявлять свои зависимости системе, и у них есть фактические аргументы (называемые контекстами), передаваемые в стиле внедрения зависимостей .
Для тех, кто не знаком с DI, но знаком с Drupal, это, например, позволяет вам никогда больше не использовать menu_get_object, чтобы получить «Этот единственный узел, указанный в пути меню». Что если в пути более одного узла? Или если вы действительно хотите основать блок на узле из ссылки на сущность? Это становится проблемой с менеджером страниц, делая все блоки (панели) намного более гибкими и многократно используемыми.
Панели
Однако наиболее распространенный вариант использования - это передача макета и рендеринга пути панелям . Панели предоставляют инструменты для определения макетов, как в коде, так и непосредственно в браузере, и позволяют размещать контент непосредственно в браузере.
Вывод
Оба эти модуля являются очень мощными и относительно плохо документированными, что привело к разочарованию многих людей. Понимание того, как использовать их, однако , хорошо стоит, если вы строите больше сайт, тем более , что их подход к работе с «страницы», а также расположение, внешний вид , как они собираются в Drupal 8 ядро, любезно EclipseGC «s инициативы СОСНЫ , Соответствующий проект песочницы
дальнейшее чтение
Примеры других интересных вещей, которые можно сделать с помощью этих инструментов:
$page_data = page_manager_get_current_page()
где деньги, особенно$page_data['handler']
В Drupal 7 менеджер страниц был основой модуля Panels .
« Learn Page manager » - это интересный (и потрясающий) набор видеороликов. Они содержат различные темы, связанные с модулем « Панели ». Вот краткое изложение всего набора видео по этой теме (цитата по ссылке выше):
Обратитесь к Объяснению Панелей: Обзор для разработчиков Drupal для другого отличного объяснения модуля Панелей.
Будущее Page Manager
В Drupal 8 Page Manager стал отдельным модулем, а раньше (до Drupal 7) он был частью модуля CTools . Вот еще несколько цитат со страницы проекта (связанной с D8):
источник