Wer sich mit Sitebuilding in Drupal beschäftigt, der kennt bestimmt das Modul „Panels“ oder hat zumindest schon davon gehört.
Für Sitebuilder und Frontend-Entwickler zählt „Panels“ neben CCK und Views wahrscheinlich zu den wichtigsten Modulen. Und es ist auch genauso mächtig wie die beiden genannten. Natürlich hat „Panels“ auch seine Grenzen. Wo liegen diese, was kann das Modul leisten, wer braucht alles Panels, wofür und warum? Diese und andere Fragen versuche ich in einer dreiteiligen Artikelserie zu beantworten.
Im ersten Teil der Serie möchte ich das Modul kurz vorstellen und eine Einleitung in das Thema „Panels“ geben.
Was kann das Modul?
Das Layout einer Seite besteht im Regelfall aus mehreren Regionen (Header, Content, Footer usw.). In diese Regionen können Inhalte eingebettet werden, z.B. in Form von Blöcken. Handelt es sich um eine Seite mit einem komplexen Layout und vielen dynamischen Inhalten, kann die Anzahl der Blöcke und Regionen schnell steigen, was die Verwaltung erschwert. Für einen solchen Fall ist Drupal’s Blocksystem wenig geeignet.
Genau hier setzt das Panels-Modul an. Durch „Panels“ wird die Content-Region ($content) in Panel-Regionen unterteilt. In diesen Panel-Regionen lassen sich dann unterschiedliche Inhalte, sogenannte „Panes“ einbetten. Das können Inhalte aller Art sein, also Blöcke, Views, ganze Nodes usw.
Die Verwaltung ist recht einfach, denn Panels bietet eine grafische Benutzeroberfläche mit Drag and Drop- Funktionalität. Damit können komplexe Layouts erstellt und Inhalte direkt an gewünschter Stelle platziert werden.
Einsatzgebiete von Panels
„Panels“ eignet sich für die Umsetzung von Seiten mit flexiblen Layouts wie Startseiten, Übersichtsseiten, Dashboards und Intranets.
Auf der Projektseite des Moduls findet sich ein Link zu einer Demo-Seite, auf der man den Einsatz von Panels erproben kann.
Das Panels-Modul wird ständig weiter entwickelt und liegt aktuell als Version 3 (stable) vor. Für Drupal 7 befindet es sich zurzeit noch im Alpha-Status.
Abhängigkeiten bestehen nur zum Modul Chaos tool suite (ctools).
Nach seiner Aktivierung, legt das Panels-Modul automatisch den Inhaltstyp "Panel" an. Damit lassen sich Panel-Nodes erstellen, die bereits die Grundfunktionen von Panels nutzen. Wer hingegen den vollen Funktionsumfang nutzen möchte, der sollte eine Panel-Seite erstellen.
Panel-Seiten haben eine eigene URL, akzeptieren Argumente und nutzen die „Context“-Logik von ctools.
Panel-Seiten mit „Context“
Seit der Version 3 nutzt Panels „Context“. Das hat nichts mit dem Modul Context zu tun. Es bedeutet vielmehr, dass einem Panel z.B. die Node ID eines eingebetteten Nodes als Context zur Verfügung steht. Das Panel „weiß“ somit in welcher Umgebung es sich gerade befindet. Ein einfacher Block weiß das nicht. Das eröffnet viele neue Möglichkeiten. So lassen sich Beziehungen auf andere Nodes herstellen, einzelne CCK Felder einbinden oder contextabhängig verschiedene Layouts wählen. Einem eingeloggten Nutzer könnte so ein anderes Layout präsentiert werden als dem ausgeloggtem Besucher.
Unter Site Building -> Panels (admin/build/panels) findet sich eine Übersicht zur Verwaltung der Panel-Seiten. Dort kann man auch benutzerdefinierte Layouts erstellen und weitere Einstellungen vornehmen.
Überschreiben von System-Seiten mit dem Page-Manager
In Verbindung mit ctools steht einem ein weiteres mächtiges Werkzeug zur Verwaltung von Panel-Seiten zur Verfügung. Das Tool ist zu finden unter Site Building -> Pages (admin/build/pages), nachdem das Page-Manager Modul von ctools aktiviert wurde.
Im Page-Manager existieren spezielle Panel-Seiten, mit denen sich System-Seiten für die Ausgabe von Taxonomy-Terms oder des User-Profils überschreiben lassen. Diese speziellen Panel-Seiten dienen als Vorlage, alle nötigen Kontexte wie Node-/ Term-/ User-ID sind bereits eingestellt. Die vordefinierte Panel-Seite muss also nur aktiviert werden und schon kann man die Ausgabe aller Nodes eines Typs oder aller Terms eines Vokabulars verändern wie man möchte.
Panels für Designer und Site-Builder
Manch einer mag einwenden, dass die Ausgabe von Panels einer verschachtelten Div-Suppe entspricht und das Modul weniger performant ist als selbst programmierte Lösungen. Solche Einwände lassen sich nicht von der Hand weisen, allerdings ist es mit Panels möglich, die Ausgabe selbst zu bestimmen, indem man eigene Layouts erstellt, die exakt den Vorgaben des Designers entsprechen und in denen der Site-Builder nach wie vor Inhalte nach Belieben platzieren kann. Dadurch wird die Div-Suppe wieder etwas klarer.
Zudem lässt sich die Ausgabe komplett cachen, was der Performance zugute kommt.
Ein weiterer Vorteil ist die hervorragende Integration in Views. „Panels“ stellt im View den neuen Display-Typ "Inhaltsausschnitt" oder "Content Pane" bereit, mit dem sich vor allem im Zusammenhang mit Argumenten tolle Dinge anstellen lassen. Wie Panels im Zusammenspiel mit Views und Argumenten genau funktioniert, möchte ich im kommenden Beitrag dieser Artikel-Serie aufzeigen.
Fazit
Mit Panels lassen sich komplexe Layouts auch ohne große Programmierkenntnisse realisieren.
Wer dafür bisher Unmengen an Regionen und Blöcke verwendet hatte, sollte sich das Panels-Modul anschauen, denn es erweitert die Möglichkeiten flexibler Layouts erheblich und bietet mehr Übersichtlichkeit und Komfort als Drupal‘s standardmäßige Blockverwaltung.
In diesem Artikel habe ich versucht die Grundlagen über Panels zu vermitteln.
Im zweiten Teil der Serie geht es um das Zusammenspiel zwischen Panels und Views.












Kommentar hinzufügen