Neos 2.1: использование ресурсов из медиабраузера в шаблоне

Мне нужно знать, как я могу использовать активы внутри шаблонов. Я хочу добавить кнопки/ссылки социальных сетей в шаблон, поэтому подумал, что самым простым способом будет использование медиабраузера, но знаю, что я не знаю, как получить правильный URI этих файлов изображений.

Я пробовал что-то вроде

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

но я не понимаю.

Возможно, мне придется поместить эти файлы в папку Resouce, но я надеюсь, что смогу сделать это с помощью медиабраузера.

Надеюсь, я смог сделать свою проблему достаточно ясной.


person dark_982    schedule 19.01.2016    source источник


Ответы (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 в шаблон.

person k.tarkin    schedule 25.01.2016
comment
Спасибо за ваше предложение. Я сделал это, добавив новый элемент, который действует как внешняя ссылка и может отображать изображение из браузера ресурсов, поэтому вы можете настроить его из бэкента. Идея использования обозревателя активов для статики (шаблонов) заключалась в том, чтобы иметь только одно место для всех изображений, а не несколько (просмотр активов и файловая система). - person dark_982; 26.01.2016