我经常在我的 TCA 中使用链接向导。
找出我必须在 Fluid(页面/电子邮件/外部)中呈现哪种链接的条件是很可怕的。有解决方案还是我必须创建自己的 ViewHelper?
它似乎没有记录,但您可以将它传递给它<f:link.page>
,它会正确呈现,即使它是外部、电子邮件或文件链接。这是因为在内部,<f:link.page>
使用UriBuilder来构建 URL,而 UriBuilder 使用 Typolink。
<f:link.page pageUid="{myLinkFieldValue}">My link</f:link.page>
这是我为此使用的 ViewHelper(+ 一个助手类): https ://gist.github.com/BenjaminBeck/7220623
我认为link.typolink ViewHelper 是您正在寻找的,至少对于 TYPO3 7.0 及更高版本。
<f:link.typolink parameter="{link}">
Linktext
</f:link.typolink>
External Link --
<f:link.external uri="http://www.typo3.org" target="_blank">external link</f:link.external>
Email --
<f:link.email additionalAttributes="{foo: 'bar'}" email="NULL" class="NULL" dir="NULL" id="NULL" lang="NULL" style="NULL" title="NULL" accesskey="NULL" tabindex="123" onclick="NULL" name="NULL" rel="NULL" rev="NULL" target="NULL">
<!-- tag content - may be ignored! -->
</f:link.email>
Internal Link --
<f:link.page pageUid="1" additionalParams="{extension_key: {foo: 'bar'}}">page link</f:link.page>
在 Fluid 中,有不同的链接视图助手:
<f:link.action action="show">action link</f:link.action>
<f:link.email email="foo@bar.tld" />
<f:link.external uri="http://www.typo3.org" target="_blank">external link</f:link.external>
<f:link.page>page link</f:link.page>
代码(和一些示例)可以在以下位置找到:typo3/sysext/fluid/Classes/ViewHelpers/Link