在 TYPO3 中获取 url 个已处理的图像

Get url of processed image in TYPO3

我需要从 TYPO3 获取处理过的图像的 URL。图片放置在自定义内容元素中并由用户修改(例如裁剪)。

我可以得到原始文件 URL,但我需要经过处理的图像 URL(来自 file_processedImages table)。

这是我的 TS:

# <------------ Speakers -------- 
tt_content.speakers = FLUIDTEMPLATE
tt_content.speakers {
file = EXT:cce/Resources/Speakers.html
variables {
    images = FILES
    images {

        references {
            table = tt_content
            fieldName = image
        }
        renderObj = COA
        renderObj {

            10 = TEXT
            10 {
                data = file:current:uid
                treatIdAsReference = 1
                wrap = |,
            }

            20 = TEXT 
            20 {
                data = file:current:publicUrl
                treatIdAsReference = 1
                wrap = |###
            }

            30 = TEXT 
            30 {
                data = file:current:title
                wrap = |,
            }

            40 = TEXT 
            40 {
                data = file:current:description
                htmlSpecialChars = 1
            }
        }       
    }   
}

}

我认为引用 table 总是作为子文件加载到 tt_content 上。 这意味着我应该能够从这样的参考图像中读取 publicUrl

data = file:current:publicUrl
treatIdAsReference = 1

也许您应该使用 FilesProcessor 获取 Extbase 模型并在 Fluid 中使用它? 参见:https://docs.typo3.org/typo3cms/TyposcriptReference/7.6/ContentObjects/Fluidtemplate/#dataprocessing

正如 Thomas 所写,我还建议在您的 FLUIDTEMPLATE 中使用 FilesProcessor:

tt_content.speakers = FLUIDTEMPLATE
tt_content.speakers {
file = EXT:cce/Resources/Speakers.html
dataProcessing {
    10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
    10 {
        references.fieldName = image
    }
}

在您的流体模板中,您可以访问原始文件(未处理)的 public URL 或获取已处理的 URL 如果应用了任何裁剪或 maxHeight 等:

<f:for each="{files}" as="file">
    <p>Public URL: {file.originalFile.publicUrl}</p>
    <p>Processed URL: <f:uri.image image="{file}" height="{data.imageheight}" width="{data.imagewidth}" /></p>
    <hr />
</f:for>