Zum Inhalt springen

f:for each gibt Inhalt nicht aus

Erstellt am 9. Juli 2015 · 4 Antworten · letzte Antwort am 10. Juli 2015

Tags: Fluid, Inhaltselemente, TYPO3 6, Frage

onza ·

Habe einen Slider als Inhaltselement erstellt. Versuche nun die Bilder in einer Liste auszugeben. Die Bilder werden auch ausgegeben, sofern ich auf den for-Viewhelper verzichte. Mein TS mit der Variable scheint also zu stimmen und auch der Rest der Ext.:

tt_content.image_slider = FLUIDTEMPLATE
tt_content.image_slider {
  file = EXT:imageslider/Resources/Private/Templates/ImageSlider.html
	variables {
		previewImage = FILES
		previewImage {
			references {
				table = tt_content
				fieldName = image
			}
			renderObj = IMAGE
			renderObj {
				file.import.data = file:current:uid
				file.treatIdAsReference = 1
			}
		}
	}
}

Hier is das Fluid Template, bringe vermutlich hier einiges durcheinander /o\:

<ul class="rslides">
<f:for each="{image}" as="previewImage">
	<li>
		<f:format.raw>{previewImage}</f:format.raw>
	</li>
</f:for>
</ul>

Wo liegt der Fehler? Danke für eure Hilfe.

Update:
Zusatzfrage: Wenn ich die Bilder in einem image Viewhelper ausgeben möchte, wie müsste ich da auf die Bilder (FAL) referenzieren? Danke!

toifel ·

Du hast die Variablen im f:for vertauscht.
Versuche es mal anders herum:

<f:for each="{previewImage}" as="image">
  <f:format.raw>{image}</f:format.raw>
</f:for>

Du kannst dir auch mal das komplette "previewImage" ausgeben lassen, dann siehst du wahrscheinlich schon, welche Attribute du an den f:image ViewHelper geben kannst.

<f:debug>{previewImage}</f:debug>
onza ·

Danke für die Hilfe. Tausche ich die Variablen aus, dann erhalte ich folgende Fehlereldung:
The argument "each" was registered with type "array", but is of type "string" in view helper "TYPO3\CMS\Fluid\ViewHelpers\ForViewHelper"

Habe vermutlich alle Kombinationen durchgespielt. Verstehe nicht warum das nicht läuft.

Anbei meine CE Extension, alle mit dieser Vorlage erstellten Ext. ohne f:for laufen super unter 6.2.14 und auch jetzt erhalte ich ja eine Ausgabe aller Bilder, wenn ich auf die Schleife verzichte.

imageslider.zip
17kB
Julian.​Hofmann ·

Ähm, ein FILES-cObject liefert Dir das Gesamtergebnis bereits vollständih zu HTML gerendet zurück. D.h. Du bekommst hier das komplett fertige HTML für alle Deine Bilder, und kein Array oder etwas traversierbares zur Anwendung in einer for-Schleife.

onza ·

Danke für den Tipp. Soll heißen dass mein TS falsch ist, FILE oder IMAGE funktionieren aber auch nicht. Ich verstehs nicht 🙁