[Frage] Einzelnes Bild per Fluidtemplate rendern [Gelöst]

  • Chrissli Chrissli
    Jedi-General
    0 x
    1016 Beiträge
    28 Hilfreiche Beiträge
    12. 09. 2018, 12:05

    Hallo Zusammen,

    vielleicht kann mir einer weiterhelfen, da ich bisher alles über die "alten" Templates gelöst habe bin ich nicht ganz so firm was Fluidtemplates betrifft.

    Ich habe ein Inhaltselement das im großen und ganzen die Darstellung und das Verhalten von textpic kopiert, sowohl im Backend als auch im Frontend.
    Unterschied ist, das hier nur 1 Bild angezeigt werden soll, für den Fall, dass mehrere hinterlegt wären.
    Mein Typoscript sieht so aus:

    [code]tt_content.singleimagetext = FLUIDTEMPLATE
    tt_content.singleimagetext {
    templateRootPaths.0 = templates/Resources/Private/Templates/
    partialRootPaths.0 = templates/Resources/Private/Partials/
    layoutRootPaths.0 = templates/Resources/Private/Layouts/

    templateName = singleimagetext
    dataProcessing {
    10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
    10.references.fieldName = image
    20 = TYPO3\CMS\Frontend\DataProcessing\GalleryProcessor
    }
    }
    [/code]

    Leider werden so immer alle Bilder angezeigt. Wie kann ich hier die Anzahl limitieren? Früher hätte ich mit FILES einfach maxItems=1 gesetzt, wo bzw. wie macht man das mit Fluid? Im Typoscript, als Parameter beim Processor oder im Template?

    God's in his heaven, all's right with the world

    Tags: Fluid
  • Niklas Lazinbee Niklas La...
    Sternenflotten-Admiral
    1 x
    234 Beiträge
    2 Hilfreiche Beiträge
    01. 10. 2018, 18:25 - Lösung

    Im Fluid Template könnte das so funktionieren:

    <f:for each="{images}" as="image" >
    <f:if condition="{iterator.index} == 0">
    <f:image src="{image.originalResource.publicUrl}" width="100"/>
    </f:if>
    </f:for>


  • 1
  • Niklas Lazinbee Niklas La...
    Sternenflotten-Admiral
    1 x
    234 Beiträge
    2 Hilfreiche Beiträge
    01. 10. 2018, 18:25

    Im Fluid Template könnte das so funktionieren:

    <f:for each="{images}" as="image" >
    <f:if condition="{iterator.index} == 0">
    <f:image src="{image.originalResource.publicUrl}" width="100"/>
    </f:if>
    </f:for>

  • Chrissli Chrissli
    Jedi-General
    0 x
    1016 Beiträge
    28 Hilfreiche Beiträge
    10. 10. 2018, 10:35

    Hallo Niklas

    und vielen Dank für die Antwort!
    Ich habe das noch nicht ausprobiert, da ich mir kurzfristig anderweitig helfen konnte, d.h. ohne Fluid sondern als Marker per TS gefüllt ( der klassische Weg ) mit FILES.

    Deine Lösung klingt ( leider ) plausibel. Ich hatte gehofft es gibt hier eine Möglichkeit nur einzelne Einträge aus der DB zu laden, aber dann ist das halt so.

    God's in his heaven, all's right with the world

  • Julian.Hofmann Julian.Ho...
    Flash Gordon
    0 x
    2917 Beiträge
    110 Hilfreiche Beiträge
    15. 01. 2020, 10:38

    Vom Dataprocessor bekommst Du ein nummerisches Array zurück. D.h. Du kannst auch direkt mit files.0 auf den ersten FileReference-Datensatz zugreifen (solltest Dir aber sicher sein, dass das Array auch immer mind. einen Datensatz enthält)

  • 1