TYPO3格栅:外观布局未正确显示



我正在使用TYPO3 10.4和带有数据处理的Gridelements。除了我放置在Gridcontainer中的内容元素的外观/布局选项外,一切都很好。

我定义了一个TCEFORM.tt_content布局,然后在我的Typoscript:中给它一个自定义类

tt_content.stdWrap.outerWrap {
cObject = CASE
cObject {
key.field = layout
default = TEXT
default.value = |
1 = TEXT
1.value = <div class="customClass">|</div>
}
}

只要我在网格容器外部使用外观布局,它就可以很好地工作;customClass";被包裹在元素周围。

一旦我尝试在网格中使用它,就不会呈现额外的包装器。如何在Gridelements中传递stdWrap?

我的网格配置是

tt_content.gridelements_pi1 {
templateRootPaths {
15 = path/to/templates/gridelements/
}
dataProcessing {
10 {
default {
options {
resolveFlexFormData = 1
resolveChildFlexFormData = 0
}
}
}
}
}

和模板文件:

<div class="column2 frame-layout-{data.layout} {f:if(condition: data.space_before_class, then: ' frame-space-before-{data.space_before_class}')}{f:if(condition: data.space_after_class, then: ' frame-space-after-{data.space_after_class}')}" id="c{data.uid}">
<f:if condition="{children}">
<f:for each="{children.1}" as="column" key="columnNumber">
<div id="c{data.uid}-{columnNumber}" class="grid-column grid-column-{columnNumber} col-lg-6">
<f:for each="{column}" as="child">
<f:render partial="Child"
arguments="{data: child.data, children: child.children, options: options, settings: settings}" />
</f:for>
</div>
</f:for>
</f:if>
</div>

EDIT:我在模板文件中找到了一种处理条件的方法:<f:if condition="{child.data.layout} == 1">,并根据这一点用我的customClass将div包裹在子级周围。但这似乎有点混乱和复杂。

你应该把"包裹";进入Fluid布局文件,然后使用部分和布局开关从Fluid模板文件获取其余内容。

通过这种方式,您可以将布局信息放入预期的文件中。

要在不同的布局之间切换,您可以在模板文件中使用动态调用,而不是切换视图助手:

<f:layout name="Layout{layout}" />

通过这种方式,您可以保持代码精简、布局和内容呈现分离,这接近于TypoScript的原则;包装";。

最新更新