Discussion:
[TYPO3-german] Verzeichnis mit f:for-Schleife auslesen
Ayhan Koyun
2017-03-23 11:05:49 UTC
Permalink
Hallo zusammen,

ich arbeite gerade an der Entwicklung einer Extension im Rahmen eines Tutorials von Stefan Neufeind und Bernhard Aster von video2brain. Im letzten Abschnitt des Kapitels, Gründgerüst und Templating wird mit einer f:for-Anweisung das Verzeichnis mit den Bildern ausgelesen und ausgegeben, leider funktioniert das bei mir nicht. Ich versuche die Bilder aus dem fileadmin auszulesen, erhalte aber im Sourcecode nichts als ein "img" Eintrag. Mein Partial-Eintrag sieht folgendermaßen aus:

<h2>{gallery.title}</h2>
<h3>{gallery.recordingDay -> f:format.date(format: "d.m.Y")}</h3>
<p>{gallery.description}</p>

<table class="tx-gallery">
<tr>
<f:for each="{gallery.image}" as="images">
<td>
<f:image src="fileadmin/images/{image.file}" />
</td>
</f:for>
</tr>
</table>


Außer die Bilder, die sich im fileadmin/images Verzeichnis befinden wird alles ausgegeben. Kann mir jemand einen Tipp geben, woran es liegt, dass keine Bilder ausgegeben werden???

Vielen Dank im voraus
Stefan Padberg
2017-03-23 11:28:10 UTC
Permalink
Post by Ayhan Koyun
<f:image src="fileadmin/images/{image.file}" />
Kann mir jemand einen Tipp geben, woran es liegt, dass
keine Bilder ausgegeben werden???
Auf welche TYPO3-Version bezieht sich das Tutorial? Und welche hast du?

Was zeigt dir der Fluid-Debugger für das Bild an?

Hast du schonmal so etwas probiert?
<f:image image="{image}" />

Die Angabe von Verzeichnisnamen würde ich unterlassen. Wenn der User das
Bild in ein anderes Verzeichnis schiebt, hast du verloren.

Beste Grüße
Stefan
--
Bergische Webschmiede
Dipl.-Ing. Stefan Padberg
TYPO3-Integrator und Webprogrammierer
:: Borner Str. 18 - 42349 Wuppertal
:: +49 202 97648355
:: +49 173 9219845
:: ***@bergische-webschmiede.de
:: http://www.bergische-webschmiede.de
Ayhan Koyun
2017-03-23 14:35:17 UTC
Permalink
Hallo und danke für die schnelle Antwort,

das Tutorial bezieht sich auf TYPO3 4.6 ich habe es auf 7.6 angewendet. Bis auf das beschriebene Problem hat auch alles funktioniert. Debug Mode habe ich aktiviert, jedoch zeigt es keinen Fehler an, ändere ich etwas am Objekt oder am Property dann erhalte ich eine Fehlerausgabe. Debug Mode funktioniert also.

Zu sehen ist die Ausgabe auf: nikahodasi.com/index.php?id=5
Stefan Padberg
2017-03-23 14:56:09 UTC
Permalink
Post by Ayhan Koyun
Hallo und danke für die schnelle Antwort,
das Tutorial bezieht sich auf TYPO3 4.6 ich habe es auf 7.6 angewendet.
Bis auf das beschriebene Problem hat auch alles funktioniert.
TYPO3 4.6 hatte noch kein File Abstraction Layer. Dementsprechend muss
man die Bilder mit Fluid völlig anders rendern. Ich würde dir raten,
erstmal auf ein aktuelles TYPO3 upzudaten.
Post by Ayhan Koyun
Debug Mode
habe ich aktiviert, jedoch zeigt es keinen Fehler an, ändere ich etwas
am Objekt oder am Property dann erhalte ich eine Fehlerausgabe. Debug
Mode funktioniert also.
Mit Debug Mode meine ich, dass du <f:debug>{_all}</f:debug> in dein
Fluid Template einträgst.

In der Ausgabe siehst du dann, wie die Fluid-Variablen für die Bilder
angesprochen werden können und ob da überhaupt was drin ist.

Beste Grüße
Stefan
--
Bergische Webschmiede
Dipl.-Ing. Stefan Padberg
TYPO3-Integrator und Webprogrammierer
:: Borner Str. 18 - 42349 Wuppertal
:: +49 202 97648355
:: +49 173 9219845
:: ***@bergische-webschmiede.de
:: http://www.bergische-webschmiede.de
Ayhan Koyun
2017-03-23 15:54:12 UTC
Permalink
Vielen Dank für die Info. Das Tutorial verwendet Version 4.6 ich verwende Version 7.6, damit sollte es doch gehen ich werde es nachher mit dem Debug ausprobieren.

Nochmals danke!
Ayhan Koyun
2017-03-24 01:11:58 UTC
Permalink
Hallo Stefan,

danke für den Tipp. Ich habe jetzt den Code folgendermaßen geändert

<f:image src="fileadmin/images/{image.file}" {__all} />

und erhalte im Quellcode folgende Ausgabe dreimal, da ich drei Elemente im Verzeichnis habe

<td>
<f:image src="fileadmin/images/" />
</td>

vorher bekam ich nur

<td>
img/
</td

Allerdings weiß ich jetzt nicht, warum der <f:image viewhelper erscheint und ich wie fortfahren kann?
Stefan Padberg
2017-03-24 11:22:10 UTC
Permalink
Post by Ayhan Koyun
Hallo Stefan,
danke für den Tipp. Ich habe jetzt den Code folgendermaßen geändert
<f:image src="fileadmin/images/{image.file}" {__all} />
und erhalte im Quellcode folgende Ausgabe dreimal, da ich drei Elemente im Verzeichnis habe
<td>
<f:image src="fileadmin/images/" />
</td>
vorher bekam ich nur
<td>
img/
</td
Allerdings weiß ich jetzt nicht, warum der <f:image viewhelper erscheint
und ich wie fortfahren kann?
Das funktioniert ja so auch nicht.

Trag mal in dein Template ein, was ich geschrieben habe:

<f:debug>{_all}</f:debug>

Siehe hier:
https://docs.typo3.org/typo3cms/ExtbaseGuide/Fluid/ViewHelper/Debug.html

Damit kannst du ausgeben lassen, welche Variablen Fluid erkannt hat und
wie die belegt sind.

Dann schaust du mal nach, ob da irgendwo 'image' auftaucht und was da
steht. Und dann schaust du mal, wie du an den Pfad rankommst.



Wenn das in deinem Tutorial nicht erklärt wird, ist es nicht viel Wert.
Das ist eine Standardmethode, um Fluidfehler zu debuggen.

Und nochmal: Es gibt gravierende Unterschiede zwischen TYPO3 CMS 4.6 und
7.6, gerade was das Handling von Bildern angeht. Das ist in deinem
Tutorial bestimmt nicht erklärt und deshalb hast du diese Probleme.


Mittlerweile kann man den f:image Viewhelper auch so einsetzen, wie ich
es geschrieben habe. Meistens klappt das, vor allem auf neu
installierten Systemen. Schau dir die entsprechende Doku mal an:

https://docs.typo3.org/typo3cms/ExtbaseGuide/latest/Fluid/ViewHelper/Image.html

Die Doku ist für einen unerfahrenen User nicht so geeignet, weil man
nicht direkt ein Anwendungsbeispiel mit geliefert bekommt. Aber sie hat
den unschätzbaren Vorteil, dass sie richtig ist, während mir dein
Tutorial definitiv nicht richtig sein KANN, weil viel zu alt.



Am besten lernst du was, wenn du dir mit einem FTP- (oder besser noch
SSH-)Zugang das TYPO3-Verzeichnis mal ansiehst. Installier dir z.B. mal
die News-Extension und schau mal in typo3conf/ext/news/Resources/Private
nach, wie dort die Templates aufgebaut wurden und wie die Bilder aus dem
FAL eingebaut wurden. Da hast du ein funktionierendes Beispiel.

Oder du schaust dir die fluid_styled_content Extension mal an. Die ist hier:
typo3_src/typo3/sysext/fluid_styled_content/

dort findest du alle Templates für die Inhaltselemente. Schau mal das
"Textmedia"-Element an, wie die das da gelöst haben.

Und: Nur anschauen! Nichts anfassen! Alle Änderungen an einem
TYPO3-System macht man in einem eigenen Verzeichnis unter fileadmin oder
besser noch in einer eigenen Extension.



Ich kenne dein Vorwissen und deine Erfahrungen nicht. Es kann sein, dass
das eine sehr steile Lernkurve ist. Aber du gehst so direkt auf das Ziel
los, anstatt deine Zeit mit Seiten-Umwegen zu verplempern.

Vielleicht haben ja andere User hier auch noch Tipps parat.

Viel Erfolg
Stefan
--
Bergische Webschmiede
Dipl.-Ing. Stefan Padberg
TYPO3-Integrator und Webprogrammierer
:: Borner Str. 18 - 42349 Wuppertal
:: +49 202 97648355
:: +49 173 9219845
:: ***@bergische-webschmiede.de
:: http://www.bergische-webschmiede.de
Ayhan Koyun
2017-03-24 12:48:41 UTC
Permalink
Hallo Stefan,

danke für die Informationen, ich werde mir das alles mal am Wochenende durchlesen.

Grüße

Ayhan
Ayhan Koyun
2017-03-27 10:17:06 UTC
Permalink
Hallo Stefan,

ich habe das mal mit dem debuger ausgelesen, ich erhalte für einen der Bilder folgende ausgabe:


image => TYPO3\CMS\Extbase\Persistence\Generic\LazyObjectStorageprototypeobject (3 items)
000000006590c5d000000000263a741d => AyhanKoyun\Gallery\Domain\Model\Imageprototypepersistent entity (uid=1, pid=4)
file => TYPO3\CMS\Extbase\Persistence\ObjectStorageprototypeobject (1 items)
caption => 'braut1' (6 chars)
uid => 1 (integer)
_localizedUid => 1 (integer)modified
_languageUid => 0 (integer)modified
_versionedUid => 1 (integer)modified
pid => 4 (integer)

Ich habe in den docs wenig herausbekommen können, wie ich mit dieser Ausgabe umgehen kann und muss, um entsprechende Änderungen vornehmen zu können, damit ich die Ausgabe der Bilder erhalte??
Philipp Gampe
2017-03-27 22:22:02 UTC
Permalink
Hi Ayhan Koyun,
Post by Ayhan Koyun
Ich habe in den docs wenig herausbekommen können, wie ich mit dieser
Ausgabe umgehen kann und muss, um entsprechende Änderungen vornehmen zu
können, damit ich die Ausgabe der Bilder erhalte??
Na, dann hast du ja auf jeden Fall schon mal ein Image Objekt in {image}.
(Versteckt hinter einem Lazy Object Storage Prototyp.)

Also sollte eines von folgenden beiden gehen:
<f:image image="{image}" />

oder
<f:for each="{image}" as="singleImage">
<f:image image="{singleImage}" />
</f:for>

Der zweite Fall tritt auf, wenn dein {image} kein einzelnes Bilder, sondern
eine Sammlung von Bildern ist (auch wenn in dieser Sammlung nur ein Bild
ist).
Ich kann dass im Moment nicht so genau aus deinen Angaben schließen.

Grüße
--
Philipp Gampe – PGP-Key 0AD96065 – LFCS
TYPO3 CMS Certified Integrator – Certified Developer – Active contributor
TYPO3 ... inspiring people to share!
Johannes C. Laxander
2017-03-23 11:50:09 UTC
Permalink
Hallo Ayhan,

ich weiß nicht, ob es nur ein Tippfehler ist, aber wenn du as="images" schreibst, dann ist {image.file}" nicht richtig! Richtig wäre also du würdest as="image" schreiben.

Johannes.
-----Ursprüngliche Nachricht-----
Gesendet: Donnerstag, 23. März 2017 12:06
Betreff: [TYPO3-german] Verzeichnis mit f:for-Schleife auslesen
Hallo zusammen,
ich arbeite gerade an der Entwicklung einer Extension im Rahmen eines
Tutorials von Stefan Neufeind und Bernhard Aster von video2brain. Im
letzten Abschnitt des Kapitels, Gründgerüst und Templating wird mit einer
f:for-Anweisung das Verzeichnis mit den Bildern ausgelesen und
ausgegeben, leider funktioniert das bei mir nicht. Ich versuche die Bilder aus
dem fileadmin auszulesen, erhalte aber im Sourcecode nichts als ein "img"
<h2>{gallery.title}</h2>
<h3>{gallery.recordingDay -> f:format.date(format: "d.m.Y")}</h3>
<p>{gallery.description}</p>
<table class="tx-gallery">
<tr>
<f:for each="{gallery.image}" as="images">
<td>
<f:image src="fileadmin/images/{image.file}"
/>
</td>
</f:for>
</tr>
</table>
Außer die Bilder, die sich im fileadmin/images Verzeichnis befinden wird alles
ausgegeben. Kann mir jemand einen Tipp geben, woran es liegt, dass keine
Bilder ausgegeben werden???
Vielen Dank im voraus
_______________________________________________
TYPO3-german mailing list
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Ayhan Koyun
2017-03-23 14:39:03 UTC
Permalink
Hallo Johannes,

danke für die schnelle Antwort. Das habe ich schon ausprobiert, ändere ich den Wert so wie du es beschrieben hast, bekomme ich eine Fehlermeldung.
Loading...