Inhaltstypen
15.03.2016

TYPO3 Flow – Applikation mit Dynamischen Attributen 2/3

Dynamische Attribute im Frontend: So funktioniert die flexible Anzeige

Locations & DataFields

Wie wir in Teil 1 gesehen haben, ist es nicht schwierig, auf Model-Ebene dynamische Attribute hinzuzufügen. Die Ausgabe der Dynamischen Attribute im Frontend gestaltet sich – sobald man sich mit dem Konzept vertraut gemacht hat – auch nicht als grosse Hürde.

Anzeige im Frontend

Wo immer die dynamischen Attribute angezeigt werden sollen, wird ein Fluid-Partial eingebunden. Dieses nennen wir eine DataLocation. Als Parameter muss dabei jeweils ein Location-Objekt, sowie das Datenobjekt übergeben werden, wie folgendes Diagramm illustriert:

Ebenfalls daraus ersichtlich ist die n:n-Verknüfpung zwischen Locations und DataFields. Im Template wird das Partial wie folgt eingebunden:

Dabei wird dem Parameter data das von AbstractDataModel abgeleitete Objekt und dem Parameter Location eine Location-Instanz übergeben. Mit der Location können mehrere DataFields verknüpft sein, welche dann vom data-Objekt die dynamischen Attribute abfragen.
Ein DataField kann einen beliebigen Typ haben, welcher die Art des Feldes definiert. Möglich sind zum Beispiel:

  • Checkbox
  • Radio-Button
  • Inputfeld
  • Textfeld
  • Datumsfeld

Location-Partial

Die vorhin definierten Typen müssen im Location-Partial abgebildet sein. In unserem Beispiel sieht das so aus:

Dem geschulten Auge fallen dabei drei Dinge auf:

  1. Es werden custom ViewHelper verwendet
  2. Für den POST-Request werden die Daten in einem separaten Daten-Array gespeichert; das muss beim Speichern berücksichtigt werden
  3. Das Partial muss immer innerhalb eines <form>-Tags liegen

ViewHelper

Format / ViewHelper

Ist soweit selbsterklärend. Es braucht nur einen Linien Code in der render-Methode:

Data / CheckedViewHelper

Bestimmt, ob eine Checkbox oder ein Radio-Button gechecked ist oder nicht. Die render-Methode beinhaltet folgende Zeilen:

Data / ValueViewHelper

Liest die von den in der Location definierten DataFields angeforderten Daten aus einem AbstractDataModel-Objekt.

Actions

Die edit- und update-Actions für Views, welche das DataLocation-Partial laden, müssen angepasst werden.

editAction

updateAction

Hier ist $product natürlich das zu speichernde AbstractDataModel-Objekt.

Abschluss

Nun muss noch die Verwaltung der Location- und DataField-Objekte eingebaut werden. Diese CRUD-Views und -Actions können ganz bequem per Flow-Kommandozeilentool erstellt werden.

Damit ist auch der zweite Teil abgeschlossen. Das Feature kann nun in der Typo3-Flow-Applikation verwendet werden.

Bei uns wurde das Feature natürlich für die spezifischen Kundenwünsche noch weiter angepasst, was auch problemlos möglich ist. Dies würde aber den Scope dieses Beitrages sprengen. Etwas tiefer in die Materie geht’s dann beim dritten Teil: DQL-Generator!

letzte 3 Blog-Beiträge

Open-Weight-Modelle & Private KI: Was der Vorstoss von Apple und Meta für Unternehmen bedeutet

Apple und Meta setzen mit leistungsstarken Open-Weight-Modellen ein überraschendes Gegengewicht zu gigantischen Cloud-Rechenzentren. Wir zeigen auf, was hinter dem Trend zu lokal ausführbarer KI steckt und was das konkret für Konsumenten und Unternehmen bedeutet. Zudem erfahren Sie, wie Sie mit...

php2shell: Wie wir PHP-Shops und Websites mit KI in Rekordzeit geschützt haben

Mit php2shell (CVE-2026-109618 und CVE-2026-109619) wurden am 21. Oktober 2026 zwei kritische Sicherheitslücken im Kern von PHP bekannt, durch die Webshops, Websites und Portale weltweit ohne Login angreifbar wurden. Während zahlreiche Hoster ihre PHP-Dienste vorsorglich vom Netz nahmen, hat das...

KI-gestützte Auftragserfassung: Wenn PDF-Bestellungen automatisch ins ERP finden

Viele Unternehmen erfassen Bestellungen aus E-Mails und PDFs noch immer manuell – obwohl genau hier enormes Automatisierungspotenzial liegt. Unser Referenzprojekt mit ASTORtec zeigt, wie KI-gestützte Auftragserfassung unstrukturierte PDF-Bestellungen ausliest, prüft und direkt ans ERP übergibt. Ein...

diesen Beitrag teilen