在Typoscript中动态读取DB条目



我有以下我的typo3安装设置:

typoscript:

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和标题标签):

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

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

但是 ->我该如何动态实现?

我尝试了这样的事情

DB:sys_file_reference:{current}:alternative

但这无效。电流应为归档的UID

(也是alttext.data =文件:当前:替代品给我一个Error: No File Object

也许文件元素的使用更安全:

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}按预期工作!

最新更新