Search code examples
typo3typoscriptfluidextbasetypo3-9.x

TYPO3 9.5.x / TypoScript / Fluid: Get variable of type FILES unrendered


I'm using a fluidtemplate for my website project and want to get a file reference from pages table which I added. But, why isn't it possible to get the file reference unrendered via variables?

//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
    }
}

Solution

  • Normal TypoScript objects (like FILES) always return a string. If you want to get the files as a variable in Fluid, you should use a DataProcessor (https://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Fluidtemplate/Index.html#dataprocessing). TYPO3 has a default DataProcessor for files, which you can use like this:

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

    This will make the files available in Fluid as the variable myfiles