TYPO3插件:TCA group选中的页面/内容元素如何在Fluid模板生成链接
解决TYPO3 Fluid模板中生成page_*/tt_content_*格式链接的最简单方法
直接利用TYPO3 TypoLink的原生格式支持,通过字符串替换将字段值的下划线换成冒号,即可用<f:link.typolink>直接生成正确链接:
<f:link.typolink parameter="{yourFieldValue -> f:replace(search: '_', replace: ':')}"> 自定义链接文本 </f:link.typolink>
原理:TYPO3的TypoLink原生支持page:23(直接指向对应页面)和tt_content:42(指向内容元素所属页面并自动添加锚点#c42)这类参数格式,只需把字段里的page_23转成page:23、tt_content_42转成tt_content:42就能直接适配。
如果需要自动显示页面/内容元素的标题作为链接文本,可以在后端逻辑中先获取对应记录的标题字段传递到模板,或者通过TypoScript配合<f:cObject>实现:
在TypoScript中定义:
lib.linkedRecordTitle = TEXT lib.linkedRecordTitle { # 处理字段值格式 data = yourFieldValue stdWrap.replacement { 10 { search = _ replace = : } } # 生成带标题的链接 typolink { parameter.field = yourFieldValue parameter.stdWrap.replacement.10 < .replacement.10 text.data = parameter:page.title // parameter:tt_content.header } }
然后在Fluid中调用:
<f:cObject typoscriptObjectPath="lib.linkedRecordTitle" data="{yourFieldValue: yourFieldValue}" />
如果只是快速生成基础链接,第一种字符串替换的方法是最直接简便的。
内容的提问来源于stack exchange,提问作者cweiske
相关产品推荐
相关产品推荐

