TYPO3 11.5.33:如何在Fluid中获取并显示文件的所有分类
解决TYPO3 11.5.33中文件分类标题显示问题
1. 用FilesProcessor扩展文件数据
默认uploads元素的files数组里,metaDataAspect.categories仅返回分类数量,可通过配置FilesProcessor强制加载关联的分类完整数据。
在内容元素的TypoScript配置中添加:
tt_content.uploads.20.dataProcessing { 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor 10 { references.fieldName = media as = files # 加载文件元数据关联的分类 metaData { categories { load = 1 # 指定要加载的分类字段,这里取标题 fields = title } } } }
配置后,模板里的{file.metaData.categories}会变成包含分类对象的数组,而非单纯的数值。
2. VHS视图助手快速生成逗号分隔标题
如果站点已安装VHS扩展,用两个视图助手组合就能直接输出格式化的分类列表:
<f:if condition="{file.metaData.categories}"> {file.metaData.categories -> v:iterator.extract(key:'title') -> v:implode(glue:', ')} </f:if>
3. 无VHS时手动遍历拼接
不想依赖VHS的话,直接在Fluid模板里遍历分类数组拼接:
<f:if condition="{file.metaData.categories}"> <f:for each="{file.metaData.categories}" as="category" iteration="iter"> {category.title}<f:if condition="{iter.isLast} == 0">, </f:if> </f:for> </f:if>
注意事项
- 先确认后端文件的元数据属性里,确实已关联了对应分类;
- TYPO3 11.5的
FilesProcessor原生支持加载分类数据,无需依赖未完成的WIP任务。
内容的提问来源于stack exchange,提问作者dave_zen
相关产品推荐
相关产品推荐

