BLOG

Panels everywhere

Wir bei comm-press lieben Panels schon lange. Am Anfang wollten wir einfach nur den Content in verschiedene Bereiche aufteilen und mit Inhalt füllen. Aber das ist bei Panels ja nur die Spitze des Eisberges. Panels bietet auch die Möglichkeit, dem angezeigten Inhalt einen Kontext mitzugeben, es hat eine Cache-Lösung und stellt viele Regeln zur Verfügung, mit denen sich die Auswahl der gerade benötigten Panel-Variante steuern lässt. Ich komme recht schnell ins Schwärmen bei diesem Modul, ähnlich wie es bei Views der Fall ist. Die Module sind halt alle von MerlinOfChaos erschaffen worden und besitzen eine gewisse Genialität. Panels Everywhere ist nun eine neuere Ergänzung von Merlins Konzepten und ich möchte kurz dafür werben.

Regionen sind doof!

Wir kennen und wir lieben sie: Regionen. Ein Template besteht aus verschiedenen Regionen, in die wir einfach Blöcke mit verschiedensten Inhalten laden können. Wieso soll das also nun doof sein? Das ist leicht zu erklären. Drupal weiß von den Regionen nur aus der theme.info Datei. Hier gibt es eine Liste und keine weiteren Angaben. Ob eine Region gerade wirklich gebraucht wird oder nicht, kann Drupal so nicht erfassen. Habe ich z.B. eine Splash-Seite ohne jede Region, wird Drupal alle Blöcke erstellen, die irgendwo einer Region zugewiesen sind. Man muss also in den Blöcken einstellen, wann sie geladen werden sollen. Und das lässt sich nur nach URL, Gruppe oder irgendwelchen PHP-Hacks steuern. Hier ein Artikel dazu von lullabot.com.
Auch können Blöcke nicht mehrfach auf derselben Seite verwendet werden ‐ alles in allem keine wirklich gute Lösung.

Aber es gibt doch Context?

Ja, es gibt da auch noch das Context Modul. Dieses ermöglicht grundsätzlich, mehr Kontext für eine Seite zu generieren. Wir haben viel gegrübelt, was für uns mehr Sinn ergibt. Ergebnis des ganzen ist, dass wir uns besser mit Panels auskennen und es - wie hier im Lullabot Podcast zu hören - nach unserem Empfinden auf alle Fragen eine bessere Antwort liefert. Wo Context sagt "Das können wir nicht", kommt Merlin und sagt "Also Panels kann das und zwar so..."

Warum also Panels Everywhere?

Panels Everywhere ist Panels. Die Regionen in page.tpl.php werden einfach mit Panels-Daten gefüllt. Man hat hier ein Panel im Panel und damit alle erweiterten Features von Panels zur Verfügung. Eine Splash-Seite ist nun eine Variante des Seiten-Panels und hat vielleicht nur eine Pane. Wenn ich abhängig vom Node-Type von 3 Spalten auf 2 Spalten wechseln will, ist dies nun viel leichter möglich als entweder im Preprocess andere CSS-Klassen oder unterschiedliches HTML auszugeben oder die page.tpl.php zu wechseln.

Das ganze kommt aber natürlich nicht ganz gefahrlos daher. Es ist erst einmal trotzdem neu und man muss das Theme entsprechend anpassen. Man kann / muss seinem Theme Panel-Layouts mitgeben, die dann für eine Variante geladen werden können oder einem fliegt das Theme schnell um die Ohren. Und Panels überfordert den unbedarften Drupal-Admin erst einmal völlig.

Allerdings hat Merlin uns Tinsel geschrieben. Dies ist ein angepasstes Garland für Panels Everywhere. Ich empfehle jedem damit zu starten.

Unser Fazit

Wir lieben es! Schade, dass ich es erst für einen Schnellschuss gehalten hatte und dachte, es sei ewig in der Beta. Es ist technisch gesehen eine logische Erweiterung des Panel-Konzepts und nichts Magisches, wie ich erst dachte. Auch denke ich, dass Drupal 8 eine Bewegung genau in die Richtung machen wird, die Panels mit Panels Everywhere vorgibt. Also jetzt ist der richtige Zeitpunkt, um mit Panels Everywhere bessere Drupal-Seiten zu erstellen!

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
Mit dem Absenden dieses Formulars, akzeptieren Sie die Datenschutzrichtlinie von Mollom.