TYPO3 - 如何在网格元素中显示表单?

TYPO3 - How to display form in grid element?

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

<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是空的,所以没有表单被渲染。

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

默认情况下,带有数据处理的 Gridelements 旨在通过直接访问变量和设置来渲染 FLUID 模板中的所有内容。所以DataProcessor的默认设置是将FlexFormXML数据解析成数组。

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

resolveFlexFormData = 0

为容器及其子容器禁用它或

resolveChildFlexFormData = 0

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