使用f:media文件调用默认图像

时间:2019-05-05 10:40:51

标签: typo3 typoscript

我试图将动态图片的调用更改为静态默认图片,所以我更改了:

<f:media file="{mediaElement}" />

使用:

<f:media file="{f:uri.image(src: 'paht_to_my_default_image\', treatIdAsReference:1}" />

但是我得到一个错误:

Argument 1 passed to TYPO3\CMS\Core\Resource\Rendering\RendererRegistry::getRenderer() must implement interface TYPO3\CMS\Core\Resource\FileInterface, string given, called in /var/www/src/typo3_src-7.6.32/typo3/sysext/fluid/Classes/ViewHelpers/MediaViewHelper.php on line 90

我不知道我是否有语法错误。

2 个答案:

答案 0 :(得分:0)

如果使用文件属性,则它期望文件列表中有文件的uid。您可以使用f:image viewhelper并为其指定src属性:

<f:image src="path_to_my_default_image" />

答案 1 :(得分:0)

我解决了我的问题,问题出在语法级别。

下面的代码可以正常工作:

<f:image src="EXT:myext/Resources/typo3_logo.png" 
class="img-responsive lazyload" 
title="{mediaElement.originalResource.title}" 
alt="{mediaElement.originalResource.alternative}" 
data="{src: '{f:uri.image(image:mediaElement,
width: settings.list.media.image.width, 
height: settings.list.media.image.height, 
maxWidth: settings.list.media.image.maxWidth, 
maxHeight: settings.list.media.image.maxHeight)}'}" 
width="{f:if(condition: settings.list.media.image.width, then: 
settings.list.media.image.width, else: settings.media.width)}" 
height="{f:if(condition: settings.list.media.image.height, then: 
settings.list.media.image.height, else: settings.media.height)}"
/>