使用 Fluid DatabaseQueryProcessor 查找记录——没有 PID

Look up a record with Fluid DatabaseQueryProcessor – without PID

在 TYPO3 7.6 中,我想从 Fluidtemplate 中的另一个(=任何)页面查找记录。

基于https://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Fluidtemplate/Index.html,我尝试了DatabaseQueryProcessor

  renderObj = FLUIDTEMPLATE
  renderObj {
    file = {$fluidPartialsPath}/Debug.html
    dataProcessing {
      20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
      20{
        # regular if syntax
        if.isTrue.field = records

        table = tt_content
        # quick&dirty to see the SQL table
        # where = stubrdebug

        # will pass these in programmatically later
        colPos = 1
        uidInList = 5
        # this doesn't work
        pidInList = *

        as = myrecords

        dataProcessing {
          10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
          10 {
            references.fieldName = image
          }
        }
      }

    }
  }

问题是 select 总是要求提供 pid 或添加当前页面的 pid。所以它的行为就像一个 CONTENT Object.

如何在查询中省略 PID?

我可以 google 的所有答案都指向简单地使用 RECORDS – 但我不明白我如何在 dataProcessing 中做到这一点。 有办法吗?

PS 更大规模:我想使用 fluid_styled_content 的 "Insert Records" 内容元素将其他(=不是来自 fsc)自定义记录类型插入当前页。我正在尝试建立自己的方法来做到这一点。请告诉我这是否没有意义和/或是否有比从头开始构建一切更简单的方法。

据我所知,dataProcessing 仅适用于当前需要填写的 $data 变量,例如通过 CONTENT 对象。

CONTENT对象使用select函数获取is数据,因此你必须使用它的pidInList属性来配置考虑的页面范围.没有页面的记录应该位于 root (pid=0) 中,并且可以通过 root 关键字选择。

如果您想创建 Insert Records 功能,那么您的记录中应该已经有一个 uid 列表。然后你可以简单地使用 RECORDS 对象来呈现特定的记录,无论它在什么页面上。