在TYPO3中获取已处理图像的网址

时间:2018-05-16 06:45:37

标签: typo3 typoscript typo3-7.6.x

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

我能够获取原始文件URL,但我需要处理后的图像URL(来自file_processedImages表)。

这是我的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
            }
        }       
    }   
}

}

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

data = file:current:publicUrl
treatIdAsReference = 1

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

正如托马斯所写,我还建议你在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
    }
}

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

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