Mit der concrete5 Version 8.x.x. wurde ein mächtiges Tool mit eingebaut: Das Express Datenobjekt. Standardmäßig werden dazu auch gleich zwei Vorlagen-Blöcke mitgeliefert, das Blockelement Express-Datenobjekt Liste und das Express-Datenobjekt Details. Das Listelement ist schon sehr mächtig, um beispielsweise Excel-ähnliche Listen anzuzeigen. Das Details - Element wird in der regel durch eigenen Code überlagert werden, indem man eine eigene Designvorlage dafür anlegt.

Das Express-Datenobjekt wurde mit der Version concrete5 V8.0.0 eingeführt und hat jetzt mit der Version V8.5.1 alle Kinderkrankheiten verloren. Ich war überrascht, wie stabil das Backend damit läuft.

Nun, was sind die Einsatzmöglichkeiten des Express-Datenobjektes?
Es kann überall dort verwendet werden, wo das Aktualisieren von Daten direkt auf einer Seite/Page mühsam ist, vor allem deswegen, weil diese Daten auf verschiedenen Seiten gelistet sind.

Andrew Embler (Co Founder von concrete5) zeigt dies ganz deutlich in seinen Videos und auf seiner Homepage. Als Paradebeispiel dient ihm die Darstellung der 1:N Beziehung von Marinahäfen und Yachten. Marina beherbergt N Yachten und jede Yacht liegt in einer Heimat-Marina. Sobald sich etwas ändert, muss sowohl der Datensatz der Marinas, als auch der Datensatz der Yachten angepasst werden. In der Regel auf verschiedenen Seiten in einem Edit-Block oder/und durch verschieben einzelner Pages im Sitemap Baum, sofern die Beziehung der beiden Datensätze mit dem Blocktyp "Seiten-Liste" implementiert wurde. Zudem sind bei neuen Datensätzen immer gleich neue Seiten anzulegen.

Das Express-Datenobjekt bietet da einen Ausweg, zumal dann, wenn noch viel mehr Beziehungen im Spiel sind.

Ich hatte jetzt ein Projekt mit folgenden Datenobjekten:

  • SeminareKursleiter
  • Termine
  • Standorte
  • Termingruppen bzw Seminargruppen

Dazu folgende Beziehungen:

  • Seminare zu Termine: 1:n
  • Termine zu Kursleiter: m:n
  • Termine zu Standorte: 1:m
  • Gruppierungen zu Terminen: m:n

Alle Objektdaten lassen sich durch Definition eines Formulars ganz einfach im Backend verwalten. Die Datenfelder der einzelnen Objektklassen lassen sich aus den bekannten concrete5 Attribute zusammenstellen. Sie können auch untereinannder geschachtelt werden.

Auch die Beziehungen unter den Objekten sind im Backend ganz einfach verwaltbar. Sobald die Objektklassen und ihre Beziehungen definiert wurden, können die Daten im Backend eingepflegt werden.

Die Definitionen erfolgen unter "Verwaltung" - > "System & Einstellungen" -> "Express Datenobjekte".

Das befüllen der Daten unter "Verwaltung" -> "Express-Datenobjekte" -> "Einträge anzeigen"

Um die Daten dann auf einer Seite anzuzeigen kann man wie folgt vorgehen:

  • Neues Seiten Attribut vom Typ Express-Datenobjekt anlegen (unter Seiten & Themes) und die entsprechende Datenobjektklasse auswählen.
  • Das neu definierte Attribut in die Seite mit aufnehmen, auf der die Daten angezeigt werden sollen. Dabei kann bereits ein Datensatz ausgewählt werden, der die Detail-Informationen enthält.
  • Dann den Blocktyp Express-Datenobjekt Detail auf die Seite im Editmodus einbinden.Ein eigenes Designtemplate für das Blockmodul 'express_entry_detail' anlegen und den PHP Code dafür schreiben.
  • Dem Blockelement auf der Seite das neu geschaffene Designtemplate zuweisen, fertig.

Ein Beispiel für eine Darstellung von Terminen eines Jahres für bestimmte Kurse sehen Sie hier:

https://natur-zauber.at/kontakt-termine