我需要从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
答案 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>