Hab's nach 3 Abenden á 5 Stunden endlich hinbekommen. Schmeiß irgendein XML rein, XML wird als Objekt eingelesen, XML wird in ein multidim Array konvertiert, alle array enthaltenen Keys werden als Subpart und alle Stringwerte als Marker gehandelt, alle Array-Keys, die Zahlen sind, werden mit foreach behandelt und im aktuellen Subpart angehangen.

Das Template muss also nur in der Struktur aufgebaut werden, wie das XML. XML-Attribute erhalten ihr eigenes Subpart.

Stefan

Am 22.07.2011 19:06, schrieb Stefan Frömken:
Ich werkel mittlerweile 5 Stunden an dieser Funktion rum. Es
funktioniert noch nicht so wie ich will. Grrr:

function array2subpart(&$content, $xml, $key = '') {
echo "<p>Start</p>";
if(is_array($xml)) {
echo "<p>Ist Array</p>";
foreach($xml as $key => $value) {
$key = ltrim($key, '@'); // This is for @attributes
if(is_array($value)) {
$content = $this->cObj->getSubpart($this->templateCode, '###' .
strtoupper($key) . '###');
echo "<p>Loop Array: Key: " . $key . "<br />" . $content . "</p>";
}
self::array2subpart($content, $value, $key);
}
} else {
$content = $this->cObj->substituteMarker($content, '###' .
strtoupper($key) . '###', $xml);
$this->templateCode =
$this->cObj->substituteSubpart($this->templateCode, '###' .
strtoupper($key) . '###', $content);
echo "<p>Ist String. Key: " . $key . " : String: " . $content . "</p>";
}
return $content;
}

vcmrdkl var

Am 22.07.2011 18:07, schrieb Stefan Frömken:
Hallo zusammen,

ich bin zwar ein Fan von sich selbst aufrufenden Funktionen, aber selbst
so ein Konstrukt umzusetzen gestaltet sich wohl doch schwieriger als
erwartet.

Ich habe ein multidimensionales Array und will alle Keys, die ein Array
enthalten als Subpart im Template zur Verfügung stellen und alle Strings
in diesem Array mit substituteMarkerArray in das entsprechende Subpart
einbinden.

Sehr kleines Beispiel. multiArray:

Array(
anbieter => array(
anbieternr => 123,
wohnung => array(
adresse => strasse 123,
plz => 12345
)
)
)

Folgender Templateaufbau:
<!-- ###ANBIETER### begin -->
<div>###ANBIETERNR###</div>
<!-- ###WOHNUNG### begin -->
<ul>
<li>###ADRESSE###</li>
<li>###PLZ###</li>
</ul>
<!-- ###WOHNUNG### end -->
<!-- ###ANBIETER### end -->

Ein Link, ein Lösungsansatz bzw. einen Tritt in die richtige Richtung
würde mir schon helfen.

Danke Euch

Stefan


_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an