TYPO3 Gridelements w / DataProcessing和FLUID没有内容

问题描述

我现在使用Gridelements已有一段时间了。我使用了以下代码

TypoScript(不推荐使用Gridelements(不包括)):

tt_content.gridelements_pi1.20.10.setup {
  2col < lib.gridelements.defaultGridSetup
  2col.cObject = FLUIDTEMPLATE
  2col.cObject.file = {$resDir}/Private/Partials/Gridelements/2spalten.html
}

流体模板:

<div class="row">
    <div class="col-md-6">
        {data.tx_gridelements_view_column_0}
    </div>
    <div class="col-md-6">
        {data.tx_gridelements_view_column_1}
    </div>
</div>

PageTS:

tx_gridelements.setup {
    2col {
        title = Two Columns
        config {
            colCount = 2
            rowCount = 1
            rows {
                1 {
                    columns {
                    1 {
                        name = Links
                        colPos = 0
                    }
                    2 {
                        name = Rechts
                        colPos = 1
                    }
                    }
                }
            }
        }
    }
}

但是现在我想使用“带有DataProcessing的网格元素(推荐)(gridelements)”,因为不推荐使用另一个元素。但是我所看到的只是错误

尝试为控制器操作“ Standard-> 2col”解析模板文件 格式为“ .html”,但所有路径均未包含预期的路径 模板文件(Standard / 2col.html)。检查了以下路径: / var / www / html / typo3 / sysext / fluid_styled_content / Resources / Private / Templates /, / var / www / html / typo3 / typo3conf / ext / gridelements / Resources / Private / Templates /, / var / www / html / typo3 / typo3conf / ext / dev_layout / Resources / Private / Templates /

如果我用TypoScript代码编写此代码

lib.gridelements.defaultGridSetup =< lib.contentElement
lib.gridelements.defaultGridSetup {
    templateRootPaths {
        20 = {$resDir}/Private/Templates/Gridelements/
    }
}
tt_content.gridelements_pi1 < lib.gridelements.defaultGridSetup
tt_content.gridelements_view < tt_content.gridelements_pi1

当我创建命名文件时,错误不再出现。但是没有输出。我看到了div,但没有内容。如何从不推荐使用的网格元素切换到数据处理网格元素?

解决方法

问题是这段代码

tt_content.gridelements_pi1.20.10.setup {
  2col < lib.gridelements.defaultGridSetup
  2col.cObject = FLUIDTEMPLATE
  2col.cObject.file = {$resDir}/Private/Partials/Gridelements/2spalten.html
}

与您包含的新静态不匹配。

看一下文档中显示的基本示例:

https://docs.typo3.org/typo3cms/extensions/gridelements/stable/Chapters/DataProcessing/Index.html

lib.gridelements.defaultGridSetup =< lib.contentElement
lib.gridelements.defaultGridSetup {
  templateName.field = tx_gridelements_backend_layout
  templateName.ifEmpty = GridElement
  layoutRootPaths {
    1 = EXT:gridelements/Resources/Private/Layouts/
  }
  partialRootPaths {
    1 = EXT:gridelements/Resources/Private/Partials/
  }
  templateRootPaths {
    1 = EXT:gridelements/Resources/Private/Templates/
  }
  dataProcessing {
    10 = GridElementsTeam\Gridelements\DataProcessing\GridChildrenProcessor
    10 {
      default {
        as = children
        # Default options of the grid children processor
        # Change them according to the needs of your layout
        # Read more about it in the TypoScript section of the manual
        # options {
          # sortingDirection = ASC
          # sortingField = sorting
          # recursive = 0
          # resolveFlexFormData = 1
          # resolveBackendLayout = 1
          # respectColumns = 1
          # respectRows = 1
        # }
      }
    }
  }
}

现在如果你想添加自己的模板和渲染配置,你只需要在 dataProcessing.10 中添加一些东西

dataProcessing {
  10 = GridElementsTeam\Gridelements\DataProcessing\GridChildrenProcessor
  10 {
    2col {
      as = columncontent
      options {
        resolveFlexFormData = 0
        respectRows = 0
      }
    }
    accordion {
      as = accordionitems
      options {
        resolveFlexFormData = 0
        respectRows = 0
        respectColumns = 0
      }
    }
  }
}

变量的名称仍然可以是 children,但处理与模板用途匹配的变量名称可能更舒服。

,

我找到了解决方案:

模板:

<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<div class="row">
    <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>
</html>

对于两个不同的列

<div id="c{data.uid}-{columnNumber}" class="grid-column grid-column-{columnNumber} {f:if(condition: '{columnNumber} == 0',then: 'col-lg-3',else: 'col-lg-9')}">
              

我的列号是左0右1

数据处理中的 TS.10:

2col {
  as = children
    options {
      resolveChildFlexFormData = 0
    }
  }
}

文档有误,你需要这个

tt_content.gridelements_pi1 =< lib.contentElement

TSconfig: 默认网格元素 TSConfig

,

“文档有误,你需要这个”

tt_content.gridelements_pi1 =< lib.contentElement

确定吗?我仍然可以使用原始的,因为它是在 w/DataProcessing 的示例中编写的:

lib.gridelements.defaultGridSetup =< lib.contentElement