基本上,我想使用 TYPO3 中内容元素的“布局”值来实现不同的图像渲染:例如,一个名为“圆形图像”的布局,将渲染的内容元素的所有图像裁剪成一个正方形,也许还有一些额外的css 级。
CSC-time of courde 中使用的snipplets 不适用于新的fluid_styled_content,所以我尝试让它与FSC 一起使用,但我陷入了一些奇怪的点,因为我无法获取“布局” -最终渲染图像的部分中的值。
添加一些布局条目(作品):
TCEFORM {
tt_content {
layout {
addItems {
4 = Circle images
}
}
}
为 FSC 使用我自己的部分(和模板)(一般工作):
lib.contentElement.partialRootPaths.200 = EXT:myextkey/Resources/Private/Partials/
lib.contentElement.templateRootPaths.200 = EXT:myextkey/Resources/Private/Templates/FluidContentTemplates
(它们基于原始版本的副本,除了一些调试条目之外没有任何更改。)
现在我陷入困境:我可以很容易地获得(并使用,例如,对于某些 if 条件或只是作为测试/调试输出)layout
“更高级别”、Textmedia.html
(模板)以及Gallery.html
I中的 -value得到 的期望值{data.layout}
,例如使用
<f:debug title="my-layout-value">{data.layout}</f:debug>
实际图像的渲染由以下f:render
viewhelper-line 完成,与原始版本保持不变:
<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>
因此,据我所知,所有这些列出的变量arguments
都应该传递给图像的渲染。
但是在Rendering\Image.html
-partial 中,{data}
then 的内容突然是 just NULL
,所以没有机会使用我的布局值。图像部分的其余部分保持不变,图像照常渲染(包括一些硬编码的测试 css 类来验证我的“自定义”部分是否被使用)。
我还尝试arguments={_all}
在Gallery.html
-partial 中使用(真正获得“一切”),导致“糟糕”-错误:
提供的文件对象类型 TYPO3\CMS\Fluid\ViewHelpers\MediaViewHelper must be FileInterface or AbstractFileFolder
我不知道我哪里出错了以及如何让所需的逻辑工作(根据内容元素的布局设置改变渲染/类/图像裁剪)。