Neos 2.1:在模板中使用来自媒体浏览器的资源

Neos 2.1: Use assets from Media Browser in template

我需要知道如何在模板中使用资源。 我想将社交媒体 buttons/links 添加到模板,所以认为最简单的方法是使用媒体浏览器,但我不知道如何获得这些图像文件的正确 URI。

我试过

<img src="{f:uri.resource(path: asset://...identifier... />   
<m:image image="{asset://...}" alt='Facebook'/>

但我不明白。

也许我必须将这些文件放在 Resouce 文件夹中,但我希望我可以使用媒体浏览器来完成。

希望我能把我的问题说清楚。

在这种特殊情况下,如果我是你,我只会将这些社交按钮添加到 My.Site/Resources/Public/images/social 并将它们与资源视图助手一起使用:

{f:uri.resource(path: 'images/social/fb.png', package: 'My.Site')}

从媒体浏览器复制资产标识符并在模板中对其进行硬编码是没有意义的。这些 ID 在您的同事数据库中可能不同,您的客户可能会意外删除此资产等等。

所以我建议将这些社交按钮(可能是 sprite)添加到包的静态资源中,创建包含所有社交按钮的部分,然后在需要它们的 page/node 模板中使用这个部分。


如果你真的想使用 media:imagemedia:uri.image 视图助手之一,你需要将资产对象(不是标识符)作为参数传递。用于该节点属性 - 添加带有 type: TYPO3\Media\Domain\Model\ImageInterface 的 fbIcon、twitterIcon 等到 NodeTypes.yaml 中的节点定义,然后插入节点并从媒体浏览器中选择图标(使用检查器),然后在节点模板中:

{namespace media=TYPO3\Media\ViewHelpers}
<ul>
<li><a href="#"><media:image image="{fbIcon}" alt="fb" />..
<li><a href="#"><media:image image="{twitterIcon}" alt="twitter" />..

我已经有一段时间没有使用 Neos 了,所以它可能会有所改变。当然,您可以创建自己的视图助手,它将接受资产 ID,并使用 AssetRepository 和 ResourceManager,您可以 return public 模板的 uri。