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

时间:2016-03-19 09:04:48

标签: typo3 fluid typo3-7.x typo3-7.6.x

在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或添加当前页面。所以它的行为类似于CONTENT对象。

如何在查询中省略PID?

我可以谷歌指出的所有答案只是简单地使用RECORDS - 但我不知道如何在dataProcessing中做到这一点。 有办法吗?

更大规模的PS:我想使用fluid_styled_content的“插入记录”内容元素将OTHER(=不是来自fsc),自定义记录类型插入当前页面。我正在努力建立一种自己的方式来做到这一点。请告诉我这是否有意义和/或是否比从头开始构建所有内容更容易。

1 个答案:

答案 0 :(得分:2)

据我所知,setTimeout( function() { $.ajax({ url: URL //Your remaining code }) },120000) 仅适用于之前需要填写的当前dataProcessing变量,例如通过$data对象。

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

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