Ralf Hendel, Geschäftsführer
Drupal Enthusiast und Freizeit-Pianist.

Entwicklertraining zu Views

Views Entwickler-Training mit Daniel Wehner bei comm-press

In Drupal gibt es praktisch kein Projekt, bei dem Views nicht eingesetzt wird. Mit Drupal 8 hat es Views sogar in den Core geschafft.

Aus unserer Sicht ist Views das wichtigste Contrib-Modul und übertrifft damit sogar Panels. Views ist mit seinen zahlreichen Sub-Modulen unglaublich komplex und seine Code-Basis recht abstrakt.

Viele Module bringen ihre eigene Views-Anbindung mit, damit sich ihre Features auch in Views nutzen lassen.

Demzufolge hat Views auch eine enorm große Issue-Queue und es gibt an etlichen Stellen Bugs, die du fixen eine fundierte Kenntnis von Views voraussetzen.

Wenn man kein Views-Entwickler ist, lassen sich manche Anforderung auch quasi "um Views herum" umsetzen, indem man in die Views-Ergebnisse per Preprocess eingreift und diese dort modelliert bzw. umschreibt. Effizienter und performanter ist es jedoch, diese direkt in Views zu implementieren und durch Views ausführen zu lassen.

Views-Training direkt vom Maintainer

Um unsere Kenntnisse an dieser Stelle zu vertiefen, haben wir Daniel Wehner von erdfisch für zwei Tage am Freitag und Samstag als Trainer für unsere Entwickler gebucht.

Daniel ist einer der Haupt-Maintainer für Views und hat derzeit knapp 3.000 (!) commits zu Views beigesteuert.

Bei dem Training wollten wir wir folgende Themen behandelt wissen:

  1. Überblick über die Objekt-Struktur von Views.
    • Welche Objekte gibt es?
    • Was leisten die einzelnen Objekte?
    Daraus sollte sich ergeben, wie und was wir an Plugins schreiben können um die verschiedenen Eigenschaften von Views zu erweitern und anzupassen.
  2. Views Plugin Entwicklung.
    • Queries anpassen: Wie lassen sich Beziehungen setzen und ändern?
  3. Views im Drupal 8 Core

Zu dem Training hatten wir unsere Freunde von undpaul eingeladen, die ihren beiden Auszubildenden zu viert aus Hannover angereist kamen.

Mit Daniels Begeisterung und seinem enormen Hintergrundwissen über die Architektur von Drupal war das nicht nur unglaublich erhellend sondern hat allen eine Menge Spaß gebracht. Das Foto mit dem Schlagstock ist natürlich gestellt. :-)

Abends waren wir noch gemeinsam essen.

Am Samstag hat Ricardo ein Views-Modul geschrieben, mit dem sich Extra-Fields in Views verwenden lassen.

Modul für Extra-Fields in Views

Extra-Fields setzen wir gern ein, wenn eine besondere Logik-Schicht gefordert ist.

Ein typisches Beispiel: Redakteure bekommen für die Titel ihrer Teaser ein eigenes Feld "Kurztitel". Jedoch hat nicht jeder Beitrag einen eigenen Kurztitel. In diesem Fall soll der Titel ausgegeben werden.

Dies lässt sich natürlich leicht im Template einstellen. Der Nachteil besteht allerdings darin, dass der Site-Builder in den Anzeige-Einstellungen der View-Modes nicht mehr erkennen kann, dass sich hinter dem Feld Kurztitel eine eigene Logik-Schicht verbirgt.

Um hier Transparenz hinein zu bekommen, ist es besser, ein Extrafield zu schreiben, in welcher die Logik-Schicht untergebracht ist. Dieses Extrafield lässt sich dann in der Display Suite konfigurieren und arrangieren.

So weit so gut. Das Problem ist nur, wenn diese Logik zum Beispiel in Feeds verwendet werden soll und sich die Feeds aufgrund komplexerer Vorgaben nicht als View-Modes anlegen lassen.

Die Extra-Felder bestehen ja nur aus Logik und enthalten selber keine Daten. Für diese Felder gibt es keine Tabelllen im System und damit von Haus aus auch keine Möglichkeit, diese mit Views abzufragen.

Über bestimmte Hooks lässt sich diese Logik aber in Views implementieren und so ist am Samstag ein weiteres Modul für Views entstanden...

Nebenbei sind auch noch ein paar andere Patches mit "abgefallen":

URLs von Entities per Views zugänglich machen

Ich hatte Daniel gefragt, warum es für Taxonomie-Terms nicht wie für Nodes auch das Feld "Alias-Pfad" gibt. Er hat sich dann etwas im Code und auf Google umgesehen.

Abends hat er mir dann per Twitter den Link zu dem Patch für die Entity API geschickt, der für alle Entities den Pfad-Alias in Views zugänglich macht. Offenbar hat er den Patch während der Zugfahrt geschrieben...

Das Training hat allen viel gebracht und wir werden solche Training in Zukunft sicherlich häufiger bei uns veranstalten.

Wir hatten schon überlegt, Daniel gar nicht wieder weggehen zu lassen, sondern ihn in irgendeinem Keller wegzusperren, wo er den ganzen Tag am Views-Code arbeiten soll :-)

Kommentare

Ralf Hendel - 6. Dezember 2012 - 11:17
<p>Pünktlich zum Nikolaus hat Ricardo sein <a href="http://drupal.org/node/1859934">Modul "Extrafield Views Integration" als Sandbox</a> veröffentlicht.</p><p>Da es sein erstes Projekt auf Drupal.org ist, braucht er nun ein wenig Review, damit die Sandbox Projekt-Status erhält. Wer hat Lust zu testen?</p><p>Viele Grüße,<br>Ralf</p>