首页 > 解决方案 > TYPO3 9.5.x / TypoScript / Fluid:获取未渲染文件类型的变量

问题描述

我正在为我的网站项目使用流体模板,并希望从我添加的 pages 表中获取文件引用。但是,为什么不能通过变量获取未渲染的文件引用?

//Not working
page.10 = FLUIDTEMPLATE
page.10.variables {
    test = FILES
    test {
        references {
            table = pages
            uid.data = page:uid
            fieldName = tx_myext_myfield
        }
    }
}

//but its working with adding
page.10.variables.test {
    renderObj = IMAGE
    renderObj {
        file.import.dataWrap = {file:current:storage}:{file:current:identifier}
        altText.data = file:current:title
    }
}

标签: typo3typoscriptfluidextbasetypo3-9.x

解决方案


普通的 TypoScript 对象(如FILES)总是返回一个字符串。如果要将文件作为 Fluid 中的变量获取,则应使用 DataProcessor ( https://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Fluidtemplate/Index.html#dataprocessing )。TYPO3 有一个默认的文件数据处理器,你可以像这样使用它:

page.10 = FLUIDTEMPLATE
page.10.dataProcessing {
  1 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
  1 {
    references.fieldName = tx_myext_myfield
    as = myfiles
  }
}

这将使文件在 Fluid 中作为变量可用myfiles


推荐阅读