Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TYPO3 8流体样式内容:在部分图像中使用布局值_Typo3_Typo3 8.x_Fluid Styled Content - Fatal编程技术网

TYPO3 8流体样式内容:在部分图像中使用布局值

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使用我自己的部分(和模板)(一般适用): (它们基于原始

基本上,我想使用TYPO3中内容元素的“布局”(layout)值来实现不同的图像渲染:例如,一个名为“圆形图像”的布局,将该内容元素的所有图像渲染为一个正方形,可能还带有一些额外的css类

courde的CSC时代中使用的Snipplet无法与新的fluid_styled_内容配合使用,因此我尝试让它与FSC配合使用,但我遇到了一些奇怪的问题,因为我无法获取最终渲染图像部分中的“layout”(布局)值

添加一些布局条目(工作):

为FSC使用我自己的部分(和模板)(一般适用):

(它们基于原始版本的副本,除了一些调试条目外,没有任何更改。)

现在我陷入了困境:我可以很容易地获得(并使用,例如,对于某些if条件或只是作为测试/调试输出)在“更高级别”中的
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>