Am 02.12.14 11:31, schrieb Chris Wolff - AERTiCKET AG:
Hallo, Bernd,
Verstehe.
Das heist aber eigendlich das du nur das flexform feld in der datenbank 
anpassen willst.
Flex auslesen währe ein bonus. Um die definition deiner "soll daten-strucktur" 
zu haben.

nun ja. ich kann ja nciht ausschließen, dass sich die datenstruktur nciht noch einmal ändert. da wäre es natürlich schön wenn ich auf Knopfdruck alles wieder richten kann, bzw. überhaupt erstmal die Info habe, ob anpassungen notwendig werden.

In meiner Naiven Vorstellung sollten dich folgende schritte zum ziel führen:

1. eine soll datenstrucktur mit default werten definieren.

dafür wollte ich die Definition der FC-CE (Fluid_content ContentElemente) nutzen.
aber da gibt es conditions und auch dynamische Arrays (mit 0-n Elementen).

2. Für jedes element das flexform auslesen (xml2array) und auf die soll 
datenstrucktur mappen falls das feld vorhanden ist.

ja. so dachte ich es mir. aber xml2array() ist dafür nicht brauchbar, da arrays nicht abgebildet werden können [1].

3. die strucktur als flexform_pi zurückschreiben (array2xml)

im Idealfall bereinigt, so dass unbenötigte (oder alte) Felder entfernt wurden.

Die soll datenstrucktur sollte sich doch als verschachteltes array abbilden 
lassen. Dafür braucht es dann doch gar kein flux.

dafür brauche ich kein Flux. die Definition der FC-CEs benutzt flux-Definitionen und legt damit die Struktur der Daten für pi_flexform fest. Primär ist nachher dann fluid_content für das Rendering zuständig, aber so wie es aussieht greift das auch auf die Datendefinition (mit Flux) zurück, da mit neueren Versionen der vollständige XML-Pfad zum Auselesen benutzt wird.


[1] bei folgendem XML
<tag1>
        <tag2 index="1">...1...</tag2>
        <tag2 index="2">...2...</tag2>
        <tag2 index="3">...3...</tag2>
</tag1>
kommt mit xml2array folgends raus:
array(
        'tag1'  => array (
                'tag2' =>    ...3...
        )
)
keine Daten von <tag2 index="1"> oder <tag2 index="2">

bernd
--
http://www.pi-phi.de/cheatsheet.html
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an