如何在TYPO3 9 LTS中配置tt_address 4.x适配insert_records元素
解决tt_address 4.3通过Insert Records展示单条地址记录的配置问题
我帮你梳理下当前配置里的问题,tt_address的Extbase插件配置和tx_news有细微差异,调整几个关键点就能正常工作,以下是修正后的完整TypoScript配置:
# 让传统Shortcut元素支持tt_address记录 tt_content.shortcut.20.tables := addToList(tt_address) tt_content.shortcut.20.conf.tt_address = USER tt_content.shortcut.20.conf.tt_address { userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run extensionName = TtAddress pluginName = ListView vendorName = FriendsOfTYPO3 switchableControllerActions { Address { 1 = show } } # 继承tt_address插件的默认设置(模板、显示字段等) settings < plugin.tt_address.settings settings { # 启用单记录插入模式 insertRecord = 1 # 正确获取Insert Records选中的地址UID singleRecords.cObject = TEXT singleRecords.cObject.data = uid } # 取消存储PID限制,确保能加载选中的任意地址记录 persistence.storagePid = } # 适配fluid_styled_content的Shortcut变量配置 tt_content.shortcut.variables.shortcuts.tables := addToList(tt_address) tt_content.shortcut.variables.shortcuts.conf.tt_address < tt_content.shortcut.20.conf.tt_address
关键调整点说明:
- 修正UserFunc语法:你之前用的
->是HTML转义字符,TypoScript里直接写->才能正确调用Extbase的Bootstrap类方法,这是导致配置失效的核心问题之一。 - 调整SingleRecords取值方式:原来的
singleRecords.field = uid写法不符合TypoScript的stdWrap规则,改用cObject = TEXT结合data = uid,可以准确读取Insert Records元素选中的地址记录UID。 - 清空StoragePid限制:默认情况下tt_address插件会限定读取指定存储文件夹的记录,添加
persistence.storagePid =后,插件会直接加载选中的单条记录,不受存储文件夹约束。 - 继承基础配置:通过
settings < plugin.tt_address.settings直接复用你后台配置的tt_address插件模板、显示字段等设置,不用重复编写这些基础项。
测试步骤:
- 后台创建一个「快捷方式(Insert Records)」元素
- 记录类型选择「tt_address」,选中你需要展示的单个地址记录
- 保存后刷新前端页面,就能看到该地址的详情内容了
内容的提问来源于stack exchange,提问作者Markus Gehrig
相关产品推荐
相关产品推荐

