如何在 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}">
我在 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}">