TYPO3 8流体样式内容:在部分图像中使用布局值
基本上,我想使用TYPO3中内容元素的“布局”(layout)值来实现不同的图像渲染:例如,一个名为“圆形图像”的布局,将该内容元素的所有图像渲染为一个正方形,可能还带有一些额外的css类 courde的CSC时代中使用的Snipplet无法与新的fluid_styled_内容配合使用,因此我尝试让它与FSC配合使用,但我遇到了一些奇怪的问题,因为我无法获取最终渲染图像部分中的“layout”(布局)值 添加一些布局条目(工作): 为FSC使用我自己的部分(和模板)(一般适用): (它们基于原始版本的副本,除了一些调试条目外,没有任何更改。) 现在我陷入了困境:我可以很容易地获得(并使用,例如,对于某些if条件或只是作为测试/调试输出)在“更高级别”中的TYPO3 8流体样式内容:在部分图像中使用布局值,typo3,typo3-8.x,fluid-styled-content,Typo3,Typo3 8.x,Fluid Styled Content,基本上,我想使用TYPO3中内容元素的“布局”(layout)值来实现不同的图像渲染:例如,一个名为“圆形图像”的布局,将该内容元素的所有图像渲染为一个正方形,可能还带有一些额外的css类 courde的CSC时代中使用的Snipplet无法与新的fluid_styled_内容配合使用,因此我尝试让它与FSC配合使用,但我遇到了一些奇怪的问题,因为我无法获取最终渲染图像部分中的“layout”(布局)值 添加一些布局条目(工作): 为FSC使用我自己的部分(和模板)(一般适用): (它们基于原始
layout
-值,在Textmedia.html
(模板)以及Gallery.html
中,我获得{data.layout}
的预期值,例如,使用
<f:debug title="my-layout-value">{data.layout}</f:debug>
因此,正如我到目前为止所理解的,所有这些列为参数的变量都应该传递给图像的呈现
但是在Rendering\Image.html
-partial中,{data}
的内容突然变成了NULL
,因此没有机会使用我的布局值。
图像部分的其余部分保持不变,图像照常呈现(包括一些硬编码的测试css类,以验证是否使用了我的“自定义”部分)
我还尝试在Gallery.html
-partial中使用arguments={{u all}
(真正获得“一切”),导致“Oops”错误:
提供的文件对象类型TYPO3\CMS\Fluid\ViewHelpers\MediaViewHelper必须是FileInterface或AbstractFileFolder
我不知道哪里出了问题,也不知道如何使所需的逻辑工作(根据内容元素的布局设置改变图像的渲染/类/裁剪)。正如您所注意到的,部分只获取参数中提到的那些变量。如果要计算另一个值,则需要更改部分调用并添加该值
在您的示例中,数据
已作为参数传递。但是该调用不调用您需要的布局
值的部分。您需要进一步跟踪(并确保传递了数据.layout
),直到调用部分渲染/Image
提示:
如果使用f:debug
-标记,请始终使用title参数标识调用哪个调试标记:
<f:debug title="my-layout-value at Template X,Line Y">{data.layout}</f:debug>
{data.layout}
Phew-谢谢你,节省了我一天的时间:-)!事实上,我只是错过了其中的一个部分,忽略了媒体/Type/Image.html
,其中数据没有传递到媒体/Rendering/Image.html
-部分。
<f:debug title="my-layout-value">{data.layout}</f:debug>
<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>
<f:debug title="my-layout-value at Template X,Line Y">{data.layout}</f:debug>