我将 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>
}
}
只要我在 gridelements 容器之外使用外观布局,它就可以正常工作,一个“customClass”被包裹在元素周围。
一旦我尝试在网格元素中使用它,额外的包装器就不会呈现。如何在 Gridelements 中通过 stdWrap?
我的 gridelements 配置是
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>
编辑:我在模板文件中找到了一种使用条件的工作方式:<f:if condition="{child.data.layout} == 1">
并根据该方式将 div 与我的 customClass 包裹在孩子周围。但这似乎有点混乱和复杂。