将内容从 TypoScript 传递到 TYPO3 7.6 中的流体模板

Pass content from TypoScript to fluid template in TYPO3 7.6

我想通过 TypoScript 阅读内容并通过自定义 Fluid 模板呈现它。没有 css_styled_content 或 fluid_styled_content.

temp.test = CONTENT
temp.test {
  table = tt_content
  select.languageField = 1
  select.selectFields = bodytext,image,header,header_link
  select.where = colPos = 1
  renderObj = FLUIDTEMPLATE
  renderObj {
    file = path/to/Teaser.html
  }
}

这适用于字符串,例如

<f:debug>{data.header}</f:debug>

但是

<f:debug>{data.image}</f:debug>

只返回图像的数量。

现在,在经典的 TypoScript RenderObj(可能是 COA)中,您会添加类似

的内容
10 = FILES
10 {
  required = 1
  references {
    table = tt_content
    fieldName = image
  }
  renderObj = IMAGE
  renderObj {
    file.import.data = file:current:originalUid // file:current:uid
    file.width=654
    file.height = 327c
    //stdWrap.typolink.parameter.data = file:current:link
    altText.data = file:current:description // file:current:title // file:current:alternative
  }
}

而现在,我们想在 Fluid 模板中做到这一点。但是如何解析FAL图像以将其传递给流体模板?

主要问题是所有图像信息都存储在另一个名为 "sys_file_reference" 的 table 中。选择 "tt_content.image" 在这里对您没有帮助。有两种方法可以解决这个问题,恕我直言。

1) 创建您自己的viewhelper。此 VH 可用于在完成时查询图像 here

2) 创建一个小的 TypoScript 库并将其用作流体模板中的 f:cObject。这是描述 here.

我并不是说我的解决方案是最好的。但这是我所知道的唯一一个。期待看到更好的解决方案 ;)

您应该能够使用 TYPO3\CMS\Frontend\DataProcessing\FilesProcessor 数据处理器来为您获取文件数据,以便您可以在模板中使用 {files} 访问它。

renderObj = FLUIDTEMPLATE
renderObj {
  file = path/to/Teaser.html
  dataProcessing {
    10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
    10.references.fieldName = image
  }
}