Ответы:
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, и вы должны знать, как использовать этот модуль.
- Сериал предназначен для опытных разработчиков Drupal.
- Эпизоды 1, 2 и 3 вводят самые основные понятия, такие как пользовательские страницы, варианты, правила выбора и (в некоторой степени) контекстные объекты.
- Эпизоды 4, 5, 6 и 7 рассказывают о панелях с акцентом на интеграцию представлений, а также некоторыми словами об эффективном кэшировании.
- Эпизоды 8 и 9 об управлении доступом, пунктах меню и, что не менее важно, малоизвестном, но очень полезном модуле контекстного администрирования.
- Эпизоды 10 и 11 рассказывают больше об использовании контекстных объектов в менеджере страниц, в том числе об использовании Views в качестве контекста. Это, imho, где настоящая сила в Page Manager.
- Эпизоды 12 и 13 собирают различные фрагменты, такие как использование панелей для простой перестройки формы редактирования узла, настройки импорта / экспорта и некоторые дополнительные модули, которые можно использовать с менеджером страниц.
Обратитесь к Объяснению Панелей: Обзор для разработчиков Drupal для другого отличного объяснения модуля Панелей.
В Drupal 8 Page Manager стал отдельным модулем, а раньше (до Drupal 7) он был частью модуля CTools . Вот еще несколько цитат со страницы проекта (связанной с D8):
Он поддерживает создание новых страниц и позволяет размещать блоки на этой странице.
Как и менеджер страниц Drupal 7, он предоставляет концепцию «вариантов страницы», каждый из которых имеет свои собственные условия выбора.
Кроме того, он может использоваться для захвата существующей страницы, например, переопределение / node /%, чтобы изменить то, что отображается при просмотре узла.
Она использует ядро
Conditions
,Context
иBlocks
API - интерфейсы для достижения этой цели .