[Frage] Mehrere Bilder aus den Seiteneigenschaften als Variable an das Fluid Template übergeben

  • fraenzer fraenzer
    R2-D2
    0 x
    116 Beiträge
    0 Hilfreiche Beiträge
    14. 04. 2015, 11:16

    Moin zusammen.

    In einem Projekt soll auf allen Unterseiten zumindest ein Headerbild angezeigt werden, welches die Redakteure in den Seiteneigenschaften unter Ressourcen zuweisen können.
    Im nächsten Schritt soll auf einigen Seiten statt einem einzelnen Bild eine Slideshow im Header auftauchen. Der Redakteur soll wiederrum die Ressourcen aus den Seiteneigenschaften nutzen, und mein Fluid-Template merkt aufgrund der Anzahl der Elemente, ob ein einzelnes Bild oder eine Slideshow dargestellt werden soll.

    Nur stehe ich etwas auf dem Schlauch, wie ich mehrere Bilder in einer Variable (Array) in mein Fluid-Template reinbekomme. Kann da wer helfen?

    Danke Euch!

    Gruß,
    fraenzer


  • 1
  • toifel toifel
    Jedi-Ratsmitglied
    0 x
    831 Beiträge
    96 Hilfreiche Beiträge
    14. 04. 2015, 11:57

    Die Bilder sollten optimalerweise als cObject FILES an Fluid übergeben werden.
    https://typo3.org/documentation/snippets/sd/438/

    Im Template kannst du dann über den ForViewHelper <f:for> durch die images loopen und bspw. jedes Bild seperat wrappen.
    Mit <f:count> kannst du vorher prüfen, ob mehr als 1 Bild in {images} vorhanden ist.

  • fraenzer fraenzer
    R2-D2
    0 x
    116 Beiträge
    0 Hilfreiche Beiträge
    14. 04. 2015, 12:26

    Ich lasse also aus Deinem Beispiel den Part renderObj weg und übergebe das cObject FILES direkt an das Fluid Template, und hier geht´s dann mit for weiter?

    Danke Dir!

  • toifel toifel
    Jedi-Ratsmitglied
    0 x
    831 Beiträge
    96 Hilfreiche Beiträge
    14. 04. 2015, 13:48

    Genau so.

    Du kannst im Template auch zuerst mit <f:debug>{images}</f:debug> das Objekt ausgeben lassen, um zu sehen, welche Attribute du brauchst. Vorausgesetzt dein Objekt heisst auch {images} ;)

  • fraenzer fraenzer
    R2-D2
    0 x
    116 Beiträge
    0 Hilfreiche Beiträge
    15. 04. 2015, 20:41

    Nun habe ich doch noch ein Problem mit dem Hinweis.
    In meinem Typo3script habe ich

    1. headerImageObj = FILES
    2. headerImageObj {
    3. references {
    4. table = pages
    5. uid.data = tsfe:id
    6. fieldName = media
    7. data = levelmedia:-1, slide
    8. }
    9. renderObj = TEXT
    10. renderObj {
    11. data = file:current:publicUrl
    12. wrap = {image : '|'},
    13. }
    14. }

    Im Fluid Template bekomme ich, wenn ich eine for Schleife um mein headerImageObj lege die Meldung, dass es sich hier nicht um ein Array, sondern einen String handelt.

    Was mache ich denn hier verkehrt?

    Danke!

  • jenses jenses
    Flash Gordon
    0 x
    3087 Beiträge
    106 Hilfreiche Beiträge
    16. 04. 2015, 08:11

    Zitiert von: fraenzer
    Nun habe ich doch noch ein Problem mit dem Hinweis.
    In meinem Typo3script habe ich
    1. headerImageObj = FILES
    2. headerImageObj {
    3. references {
    4. table = pages
    5. uid.data = tsfe:id
    6. fieldName = media
    7. data = levelmedia:-1, slide
    8. }
    9. renderObj = TEXT
    10. renderObj {
    11. data = file:current:publicUrl
    12. wrap = {image : '|'},
    13. }
    14. }

    Im Fluid Template bekomme ich, wenn ich eine for Schleife um mein headerImageObj lege die Meldung, dass es sich hier nicht um ein Array, sondern einen String handelt.

    Was mache ich denn hier verkehrt?

    Danke!

    Andersrum gefragt:
    wieso erwartest du eigentlich,
    daß mit der Anweisung "renderObj = TEXT" ein Array übergeben wird? ;)

  • fraenzer fraenzer
    R2-D2
    0 x
    116 Beiträge
    0 Hilfreiche Beiträge
    16. 04. 2015, 11:40

    Mhm, da ist schon was dran. :-)
    Nur stehe ich jetzt auf dem Schlauch, was da nu hin muss.
    Eigentlich war ich wie oben geschrieben der Meinung, dass der renderObj Part komplett rausfliegt und ich das FILES Objekt an FLUID übergebe. Nur wenn ich das mache und im Template einmal den debug-Viewhelper bemühe, dann kommt dabei eine leere Ausgabe raus. Was ja eigentlich nicht sein kann, da das Bild ja mit dem renderObj Code korrekt ausgegeben wird.

    Vielen Dank schonmal!

    Gruß,
    fraenzer

  • 1