TYPO3 从排版和流体模板渲染事件

问题描述

在 TYPO3 10.4.8 中,我有以下页面树:

1level:事件

2level:事件A,事件B,事件C,......等等......

我想在页面 Events 中做的是使用 FLUIDTEMPLATE 呈现所有子页面标题

所以在我写的页面事件模板中

lib.EventContent = COA
lib.EventContent {
    10 = COA
    10{
        table = pages
        select {
            orderBy = sorting
            pidInList = this
        }
    }
}

在布局文件

<f:for each="lib.EventContent" as="event" >
    <p>event: {event.title}</p>
</f:for>

这不起作用。打字错误给我这个错误

参数“each”注册为“array”类型,但在视图助手“TYPO3Fluid\Fluid\ViewHelpers\ForViewHelper”中属于“string”类型。

此外,我还尝试用 CONTENT 更改 COA,以所有可能的组合(COA-CONTENT / CONTENT-COA / CONTENT-CONTENT) 怎么了?是我做不到的吗?

谢谢大家

解决方法

TypoScript 应该看起来像这样:

lib.EventContent = CONTENT
lib.EventContent {
    table = pages
    select {
      orderBy = sorting
      pidInList = this
    }
}

但是有一个更简单的解决方案。 TYPO3 已经带来了一个内容元素“Subpages”,它呈现一个选定页面的所有子页面的菜单:

{{3}}

这是通过 Fluid Styled Content 和 TypoScript 完成的。请检查此文件以获取详细信息: typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/MenuSubpages.typoscript

适合您的解决方案可能如下所示(未经测试):

lib.EventContent < tt_content.menu_subpages
lib.EventContent {
  dataProcessing {
    10 {
      special >
    }
  }
}

查看 Fluid Styled Content 扩展中的所有 TypoScript 文件以获得更多灵感也是一个好主意。