在 TypoScript 中动态读取数据库条目

Read DB entries dynamically in TypoScript

我的 Typo3 安装有以下设置:

打字错误:

lib.responsiveImage = IMAGE
lib.responsiveImage {
  default = IMAGE
  default{
    file {
        import.current = 1
        treatIdAsReference = 1
      }
      altText.data = DB:sys_file_reference:26:alternative
      titleText.data = current
  }
}

产生以下输出标签(删除不必要的内容;重要的是 alt 和 title 标签):

<img class="img-responsive" srcset="XY.jpg" alt="AltText" title="26" sizes="(min-width: 1200px) 1100px">

如您所见,current 提供了正确的 uid“26”。通过 DB:sys_file_reference:26:alternative 的数据库查询提供了正确的 "AltText".

但是 -> 我怎样才能动态地实现它?

我试过这样的东西

DB:sys_file_reference:{current}:alternative

但这没有用。当前应该是 FileReference

的 uid

(另外 altText.data = file:current:alternative 给了我一个 Error: No File Object

也许使用 FILES 元素更安全:

lib.responsiveImage = FILES
lib.repsonsiveImage {
  references.current = 1

  renderObj = IMAGE
  renderObj {
    file.import.data = file:current:uid
    file.treatIdAsReference = 1

    altText.data = file:current:alternative
    titleText.data = file:current:title
    emptyTitleHandling = useAlt
  }
}

幸运的是我找到了解决方案:

  default = IMAGE
  default{
    file {
        import.current = 1
        treatIdAsReference = 1
      }
      sourceCollection < tt_content.image.20.1.sourceCollection
      layout < tt_content.image.20.1.layout
      layoutKey = srcset  
      altText.data.dataWrap = DB:sys_file_reference:{current}:alternative
      altText.wrap = |
  }

如果您使用 dataWrap,{current}会按预期工作!