Was ist der Unterschied zwischen Page Manager und Panels?

31

Ich schreibe diese Frage, weil ich überall in der Drupal-Community Verwirrung über "Was ist Seitenmanager" und "Was sind Panels" sehe.

Letharion
quelle

Antworten:

48

Ctools

In Ctools gibt es ein Untermodul namens " Seitenmanager ". Dieses Modul ist im Kern eine grafische Benutzeroberfläche für hook_menu . Sie können entweder neue Pfade im System erstellen oder einige der von Core bereitgestellten Pfade übernehmen.

Seitenmanager

Sobald der Seitenmanager einen Pfad für Sie verwaltet, kann er verschiedene Aktionen ausführen. Standardmäßig können Weiterleitungen für Sie bereitgestellt werden. Ein häufiger Anwendungsfall hierfür ist, den Zugriff auf Knoten zu verweigern, für die keine ordnungsgemäße Thematisierung vorliegt, da diese nicht für sich betrachtet werden sollen, z. B. "Faktenfelder" oder "Image-Knoten". Eine andere Möglichkeit besteht darin, von einer Begriffssicht zu einer Solr-Suche desselben Begriffs umzuleiten.

Einer der wichtigsten Vorteile von Seiten - Manager ist, dass es eine Art und Weise des Umgangs mit „Kontext“ führt, nicht mit dem Modul verwechselt werden Context . Der Clou dabei ist, dass Panes, die "etwas intelligentere Blöcke" sind , ihre Abhängigkeiten zum System deklarieren können und ihnen die eigentlichen Argumente (so genannte Contexts) im Abhängigkeitsinjektionsstil übergeben werden .

Für diejenigen, die mit DI nicht vertraut, aber mit Drupal vertraut sind, können Sie beispielsweise festlegen, dass menu_get_object nie wieder verwendet werden muss, um "den einzigen Knoten zu erhalten, auf den aus dem Menüpfad verwiesen wird". Was ist, wenn sich mehr als ein Knoten im Pfad befindet? Oder wenn Sie den Block wirklich auf einen Knoten aus einer Entitätsreferenz gründen möchten? Dies ist für Page Manager kein Problem, da alle Blöcke (Fensterbereiche) viel flexibler und wiederverwendbarer sind.

Panels

Der häufigste Anwendungsfall ist jedoch die Übergabe des Layouts und des Renderns des Pfads an Panels . Panels bietet Tools zum Definieren von Layouts, entweder im Code oder direkt im Browser, und ermöglicht das Platzieren von Inhalten direkt im Browser.

Fazit

Beide Module sind sehr leistungsfähig und relativ schlecht dokumentiert, was viele Leute frustriert hat. Es lohnt sich jedoch, zu verstehen, wie sie verwendet werden, wenn Sie eine größere Site erstellen, zumal ihre Herangehensweise an den Umgang mit "Seiten" und das Layout so aussieht, als würden sie dank der SCOTCH - Initiative von EclipseGC in den Drupal 8 - Kern integriert . Relevantes Sandbox-Projekt

Weitere Lektüre

Beispiele für andere interessante Dinge, die man mit diesen Tools machen kann:

  1. Wenn Context als Schnittwerkzeug verwendet wird, können Bedienfelder zusammenarbeiten und als Layoutwerkzeug verwendet werden.
  2. Panels können mit Display Suite interagieren , um eine ansprechende Drag-and-Drop-Benutzeroberfläche bereitzustellen.
  3. Der Seitenmanager und die Kontextverwaltung können dabei helfen, kontextsensitive Menüs und andere hilfreiche Dinge für Site-Administratoren / -Redakteure einzurichten.
Letharion
quelle
3
Ich habe den Seitenmanager noch nie wirklich verstanden / benutzt - es ist großartig zu wissen, wofür er (im Grunde) gedacht ist. Danke für das kurze Schreiben!
Chapabu
2
$page_data = page_manager_get_current_page()ist, wo das Geld ist, vor allem$page_data['handler']
mpdonadio
1

In Drupal 7 war Page Manager die Grundlage des Panels- Moduls.

" Learn Page Manager " ist eine interessante (und erstaunliche) Sammlung von Videos. Sie enthalten verschiedene Themen im Zusammenhang mit dem Modul Panels . Hier ist eine Zusammenfassung aller Videos zu diesem Thema (Zitat aus dem obigen Link):

  • Mit dem Seitenmanager können Sie Kontextinformationen auf flexible und konsistente Weise erfassen und verwalten. Es ist ein wichtiger Bestandteil beim Aufbau der Infrastruktur auf Drupal-Websites, und Sie sollten wissen, wie dieses Modul verwendet wird.
  • Die Screencast-Serie richtet sich an erfahrene Drupal-Entwickler.
  • In den Episoden 1, 2 und 3 werden die grundlegendsten Konzepte vorgestellt, z. B. benutzerdefinierte Seiten, Varianten, Auswahlregeln und (in gewissem Umfang) Kontextobjekte.
  • In den Episoden 4, 5, 6 und 7 geht es um Panels, wobei der Schwerpunkt auf der Integration von Views liegt, aber auch einige Worte zum effizienten Caching.
  • In den Folgen 8 und 9 werden die Zugriffssteuerung, Menüelemente und nicht zuletzt das wenig bekannte, aber sehr nützliche Modul für die kontextbezogene Verwaltung behandelt.
  • In den Folgen 10 und 11 wird mehr über die Verwendung von Kontextobjekten im Seitenmanager gesprochen, einschließlich der Verwendung von Ansichten als Kontext. Dies ist, imho, wo die eigentliche Macht in Page Manager ist.
  • In den Episoden 12 und 13 werden verschiedene Elemente zusammengefasst, z. B. die Verwendung von Bedienfeldern zum einfachen Neuanordnen des Knotenbearbeitungsformulars, das Importieren / Exportieren von Einstellungen und einige zusätzliche Module, die mit dem Seitenmanager verwendet werden können.

Weitere nützliche Erklärungen zum Modul "Panels" finden Sie unter Erklären von Panels: Ein Überblick für Drupal-Entwickler .

Die Zukunft von Page Manager

In Drupal 8 wurde Page Manager zu einem separaten Modul, während es früher (bis Drupal 7) Teil des CTools- Moduls war. Hier sind einige weitere Zitate von der (D8-bezogenen) Projektseite:

Es unterstützt die Erstellung neuer Seiten und ermöglicht das Platzieren von Blöcken innerhalb dieser Seite.

Wie der Seitenmanager von Drupal 7 bietet er ein Konzept von "Seitenvarianten" mit jeweils eigenen Auswahlbedingungen.

Darüber hinaus kann es verwendet werden, um eine vorhandene Seite zu übernehmen, z. B. / node /%, um zu ändern, was beim Anzeigen eines Knotens angezeigt wird.

Es nutzt den Kern Conditions, Contextund BlocksAPIs , dies zu erreichen.

Pierre.Vriens
quelle