Basically I want to use the "layout"-value of a content element in TYPO3 to realize different rendering of images: e.g. a layout called "circle images" to have all images of that content element rendered cropped to a square and perhaps with some additional css-class.
The snipplets used in CSC-times of courde won't work with the new fluid_styled_content, so i try to have it work with FSC, but I get stuck at some weird point, because I'm not able to fetch the "layout"-value in the partial finally rendering the image.
Add some layout entry (works):
TCEFORM {
tt_content {
layout {
addItems {
4 = Circle images
}
}
}
Use my own partials (and templates) for FSC (works in general):
lib.contentElement.partialRootPaths.200 = EXT:myextkey/Resources/Private/Partials/
lib.contentElement.templateRootPaths.200 = EXT:myextkey/Resources/Private/Templates/FluidContentTemplates
(They're based on copies of the original versions without any changes except some debug-entries.)
Now to where I'm stuck: I can easily get (and use, e.g. for some if-condition or just as testing / debug-output) the layout
-value in the "higher levels", in Textmedia.html
(template) as well as in Gallery.html
I get the expected value for {data.layout}
, e.g. using
<f:debug title="my-layout-value">{data.layout}</f:debug>
The rendering of an actual image is done by the following f:render
viewhelper-line, unchanged from the original version:
<f:for each="{gallery.rows}" as="row">
<div class="ce-row">
<f:for each="{row.columns}" as="column">
<f:if condition="{column.media}">
<div class="ce-column">
<f:debug title="my-layout-value">{data.layout}</f:debug>
<f:render partial="Media/Type" arguments="{file: column.media, dimensions: column.dimensions, data: data, settings: settings}" />
</div>
</f:if>
</f:for>
</div>
</f:for>
So, as I understood so far, all these variables listed as arguments
should be passed to the rendering of the image.
But in the Rendering\Image.html
-partial, the content of {data}
then suddenly is just NULL
, so no chance to use my layout value.
The rest of the Image-partial is untouched, the image is rendered as usual (including some hard coded test css-class to verify my "custom" partial is used).
I also tried to use arguments={_all}
in the Gallery.html
-partial (to really get "everything"), leading to an "Oops"-error:
Supplied file object type TYPO3\CMS\Fluid\ViewHelpers\MediaViewHelper must be FileInterface or AbstractFileFolder
I have no clue where I went wrong and how to get the desired logic to work (vary rendering / classes / cropping of the images based on the layout setting for the content-element).