Neos 2.1: использование ресурсов из Media Browser в шаблоне
Мне нужно знать, как я могу использовать активы внутри шаблонов. Я хочу добавить кнопки / ссылки в социальных сетях к шаблону, поэтому я подумал, что самый простой способ - использовать медиабраузер, но я не знаю, как получить правильный URI этих файлов изображений.
Я пробовал что-то вроде
<img src="{f:uri.resource(path: asset://...identifier... />
<m:image image="{asset://...}" alt='Facebook'/>
но я не понимаю
Возможно, мне нужно поместить эти файлы в папку Resouce, но я надеюсь, что смогу сделать это с помощью медиабраузера.
Надеюсь, я смогу прояснить мою проблему.
1 ответ
В этом конкретном случае на вашем месте я бы просто добавил эти кнопки My.Site/Resources/Public/images/social
и использовать их с помощником вида ресурса:
{f:uri.resource(path: 'images/social/fb.png', package: 'My.Site')}
Не имеет смысла копировать идентификатор ресурса из медиа-браузера и жестко кодировать его в шаблоне. Эти идентификаторы могут отличаться в вашей базе данных коллег, ваш клиент может удалить этот актив случайно и так далее.
Поэтому я бы предложил добавить эти социальные кнопки (возможно, в спрайте) к статическим ресурсам вашего пакета, создать частичные со всеми социальными кнопками и использовать их в шаблонах страниц / узлов там, где они вам нужны.
Если вы действительно хотите использовать один из media:image
или же media:uri.image
Для просмотра помощников, вам нужно передать объект актива (не идентификатор) в качестве аргумента. Используйте для этого свойства узла - добавьте fbIcon, twitterIcon и т. Д. type: TYPO3\Media\Domain\Model\ImageInterface
к определению вашего узла в 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, так что он мог бы немного измениться. И, конечно, вы можете создать свой собственный помощник вида, который будет принимать идентификатор ресурса, а с помощью AssetRepository и ResourceManager вы можете вернуть общедоступный URI в шаблон.