Hallo zusammen,
ich habe den Ansatz über DynaFlex ausprobiert und mich an den Hinweisen aus dem T3N Magazin orientiert. Die Implementierung ist eigentlich recht simpel, allerdings ergeben sich durch die Verwendung einige Probleme:
1) Schwierige Manipulationen
Das Anlegen der Struktur stellt kein Problem dar. Allerdings ist das Löschen von dynamisch erzeugten Einträgen eher kritisch, da hier eine eigene PHP-Methode entwickelt werden muss, welches die zu löschenden Daten tatsächlich aus der XML-Struktur entfernt und diese Modifikation in der Datenbank überschreibt.
2) Keine Möglichkeit zum einfachen Sortieren
DynaFlex stellt zwar eine Manipulationsmethode "move" (neben "add" und "remove") zur Verfügung. Allerdings müssen die entsprechenden Buttons zum Sortieren und die Logik des Sortiervorganges selbst implementiert werden. Hierzu ist eine weitere eigene PHP-Methode notwendig, die zwar auf die DynaFlex-Funktion "move" zurückgreift, aber letztendlich die XML-Struktur wieder anfasst und definiert.
3) Fehlen von Containern
Der derzeitige DynaFlex-Ansatz unterstützt noch keine Container (AFAIK, kann mich aber auch irren und diese Funktion verbirgt sich hinter etwas, wo ich sie nicht vermutet hätte). Container (oder Entity, vergleich bar mit Verzeichnissen eines Betriebssystems, zum sammeln von Daten), z.B. "Container 1" beinhaltet "Titel 1, Text 1, Bild 1", könnten dazu hergenommen werden, um Daten gesammelt zu löschen oder zu verschieben. Hier musste ich jedes einzelne Datenfeld anfassen und löschen (ebenfalls via eigener PHP-Funktion).
4) Browserschwierigkeiten
Da für nahezu jedes Feld, ob standard oder FlexForm, eine zugehörige JavaScript-Funktion hinterlegt wird, hatte mein System beim Umgang von z.B. zehn Häusern mit jeweils acht Bewohnern erhebliche Probleme ("Häuser" und "Bewohner" stammen aus der Beschreibung des Problems, ganz am Anfang dieses Threads). Die JS-Engine des Browsers meldete Laufzeit- und Überlast-Fehler.
Mein persönliches Fazit:
DynaFlex ist ein sehr guter Ansatz. Die Idee und der bisherige Aufwand dies zu erstellen ist hervorragend und geht in die richtige Richtung. Allerdings sind hier noch einige mehrere Erweiterungen vorzunehmen.
Zum Thema dynamische Datenstrukturen im TYPO3-Backend, und dies aus allgemeiner Sicht, nicht auf die Extension DynaFlex fixiert, gilt zu sagen, dass der Einsatz von dynamischen client-seitigen Funktionen benötigt wird. AJAX ("dyn." JavaScript) bietet hier gute Ansatzpunkte, allerdings wird die Integration in die TYPO3-Backend-Struktur einiges an Pionierarbeit (wie schon von steffenK erwähnt) und Zeitaufwand erfordern.
Ich habe die am Anfang des Threads genannte Problemstellung nun in eine einfachere TYPO3-Struktur überführt:
Objekte des Typs "Straße" werden als SysOrdner abgelegt - darunter gibt es genau einen Datensatz "Straßendaten" (Name, Länge in Metern, etc.), sowie ebenfalls in diesem SysOrdner mehrere Datensätze vom Typ "Haus".
Im "Haus"-Datensatz wurden per DynaFlex und eigenen PHP-Funktionen, die sich um das dynamische Erweitern und Löschen kümmern, die "Bewohner" aufgenommen.
Für den Backend-Redakteur wäre es wohl schöner, alles auf einen Blick zu haben, und Wechsel der Eingabemasken zu vermeiden, aber aus Gründen der Performance geht es derzeit mit den vorhandenen Mitteln nicht anders.
Falls sich ebenfalls jemand mit dieser Thematik beschäftig hat oder Anregunden hat, würde ich mich auf eine rege Diskussion und einen Austausch freuen.
Vielen Dank!
MfG, Olly