0

我使用带有扩展网格元素和核心表单扩展的 TYPO3 v10.4.8。我已将表单包含在后端创建的网格元素中,但它在前端不可见。这是我的网格模板的一部分:

<f:if condition="{children}">
    <f:for each="{children}" as="columns" key="rowNumber">
        <div class="row grid-row grid-row-{rowNumber}">
            <f:if condition="{columns}">
                <f:for each="{columns}" as="column" key="columnNumber">
                    <div class="col-12 grid-column grid-column-{columnNumber}">
                        <f:for each="{column}" as="child">
                            <div class="inner">
                                <f:cObject typoscriptObjectPath="tt_content.{child.data.CType}" data="{child.data}" table="tt_content" />
                            </div>
                        </f:for>
                    </div>
                </f:for>
            </f:if>
        </div>
    </f:for>
</f:if>

我的配置:

lib.gridelements.defaultGridSetup =< lib.contentElement
lib.gridelements.defaultGridSetup {
    templateName.field = tx_gridelements_backend_layout
    templateName.ifEmpty = GridElement
  layoutRootPaths {
    10 = EXT:gridelements/Resources/Private/Layouts/
    20 = {$page.fluidtemplate.templateRootPath}
  }
  partialRootPaths {
    10 = EXT:gridelements/Resources/Private/Partials/
    20 = {$page.fluidtemplate.templateRootPath}
  }
  templateRootPaths {
    10 = EXT:gridelements/Resources/Private/Templates/
    20 = {$page.fluidtemplate.templateRootPath}
  }
  dataProcessing {
    10 = GridElementsTeam\Gridelements\DataProcessing\GridChildrenProcessor
    10 {
      default {
        as = children
        options {
            resolveChildFlexFormData = 0
        }
      }
    }
  }
}

核心模块中的Render.html文件被调用,但变量formConfiguration为空,因此不呈现表单。

4

1 回答 1

0

由于表单元素使用该pi_flexform字段来选择表单定义,因此您必须禁用 Gridelements 的自动 FlexForm 解析器。

默认情况下,带有 dataProcessing 的 Gridelements 旨在通过直接访问变量和设置来呈现 FLUID 模板中的所有内容。因此DataProcessor 的默认设置是将FlexForm XML 数据解析为数组。

要禁用该行为,您可以使用该选项

resolveFlexFormData = 0

为容器及其子级禁用它或

resolveChildFlexFormData = 0

仍然解析容器 FlexForms 但跳过那些子元素。

于 2020-11-16T18:52:00.293 回答