2

我正在使用Fedext.net工具集处理 Typo3 6.1 和 Fluid 模板。我有这样定义的内容元素后端模板:

{namespace flux=Tx_Flux_ViewHelpers}
{namespace v=Tx_Vhs_ViewHelpers}
<f:layout name="Content" />
<div xmlns="http://www.w3.org/1999/xhtml"
     xmlns:flux="http://fedext.net/ns/flux/ViewHelpers"
     xmlns:v="http://fedext.net/ns/vhs/ViewHelpers"
     xmlns:f="http://fedext.net/ns/fluid/ViewHelpers">

...

<flux:flexform.object name="item">
    <flux:flexform.field.input name="url">
        <flux:flexform.field.wizard.link />
    </flux:flexform.field.input>
</flux:flexform.object>

然后我像这样在前端渲染它

<f:link.external uri="{section.item.url}">
    {section.item.url}
</f:link.external>

问题是链接后端向导允许用户设置链接http://www.google.com/ _blank - Google,如其代表href target css-class title并最终出现在以下前端 HTML 渲染中:

<a href="http://www.google.com/ _blank - Google">
    http://www.google.com/ _blank - Google
</a>

我想知道是否已经有任何 ViewHelper 允许正确呈现链接小部件数据?或者我应该自己实施一个?我已经检查了这些文档:

我坚持使用第一个,但它比我真正需要的要简单一些。可能还有一个 ViewHelper 可以按空格字符拆分链接数据,然后我可以渲染链接,但听起来像一个不可靠的解决方法。

4

2 回答 2

4

简单的答案是通量和流体内容本身不为这些提供 ViewHelper。

您必须使用像这样的外国 ViewHelper 。我将它的一个变体添加到 VHS ViewHelper 集合扩展中。与流体核心类似,我们在 VHS 配套扩展中添加了 2 个新的 ViewHelpers(v:link.typolink & v:uri.typolink):

安装后,将命名空间导入到您的模板中,如下所示:

{namespace v=Tx_Vhs_ViewHelpers}

并在您的模板中使用它:

<v:uri.typolink parameter="{parameter: section.item.url}" />

这应该够了吧。

此外,由于这只呈现由typolink生成的uri,因此vhs您可以使用第二个非常相似的ViewHelper来生成链接:

<v:link.typolink parameter="{parameter: section.item.url}">Beautiful link</v:link.typolink>

感谢 kimomat 在下面的答案中指出这一点。

于 2013-09-24T12:44:12.337 回答
0

如果我在流体内容主部分(TYPO3 6.2、VHS 1.9.1、流体内容 4.0.0)中呈现示例,则 ViewHelper 仅输出链接 url,没有链接。

<p><v:uri.typolink configuration="{parameter: '13', additionalParams: '&print=1', title: 'Follow the link'}">Click Me!</v:uri.typolink></p>

此代码将呈现:

<p>/products/?print=1</p>

PageUid 13 是产品页面。我会期待一个标签。

好,我知道了。我需要 ViewHelper v:link.typolink:

<v:link.typolink configuration="{parameter: '13', additionalParams: '&print=1', title: 'Follow the link'}">Click Me!</v:link.typolink>
于 2014-06-05T15:57:05.610 回答