[TYPO3-german] wie benutze ich xml2array() ?

bernd wilke t3ng at bernd-wilke.net
Tue Dec 2 11:59:17 CET 2014


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


More information about the TYPO3-german mailing list