如何在 TYPO3 Neos 中将节点转换为 uris

How to convert nodes to uris in TYPO3 Neos

我在 TYPO3 Neos 1.2.1 中创建了一个带有 link 字段的自定义节点类型。当我将 属性 值传递给模板并尝试将其呈现为 link 时,会抛出一个异常:

Paths must not contain two consecutive slashes.

link 属性 值为 »node://c969f0d4-2e01-87b9-25a8-6079c5a292fe«。 I have read,link 必须首先转换为 URI。但是,建议的处理器对我的网站没有影响。

TypoScript2

prototype(Acme.MySitePackage:Teaser) < prototype(TYPO3.Neos:Content) {
    templatePath = 'resource://Acme.MySitePackage/Private/Templates/NodeTypes/Teaser.html'

    title = ${q(node).property('title')}
    text = ${q(node).property('text')}
    image = ${q(node).property('image')}
    link = ${q(node).property('link')}
    link.@process.convertUris = TYPO3.Neos:ConvertUris {
        #forceConversion = true
    }
}

流体模板

<f:debug>{link}</f:debug>
<neos:link.node node="{link}" />

我敢打赌,如果您保留处理器并从模板中删除 neos:link.node,那么

<f:debug>{link}</f:debug>

将向节点显示 http:// link。 错误发生在 link ViewHelper 上,它需要一个节点或节点路径,但既不是 node:// 也不是 href:// link (也许我们将来应该支持它)。所以你可以使用普通的 <a href="{link}">