在eZ Publish 5中,我有一个带有图像属性的类。
在树枝模板中,我可以从属性参数中获取相对网址(例如' / var / site / storage / image /... 39;)。
现在我需要绝对的网址。获得它的最佳途径是什么?
我是否应该获取请求信息并将基本网址附加到相关网址?或者有一种内置的方法吗?
由于
答案 0 :(得分:2)
你应该这样做:
{{ asset( ez_image_alias( content.getField( 'image' ), content.versionInfo, 'original' ).uri, absolute=true ) }}
ez_image_alias用于获取图像别名(显然),这里我们得到原始变体。 然后我们获取图像别名的uri,并将其传递给symfony asset函数。
这应该有效。
答案 1 :(得分:0)
是的,这是正确的答案。 只是不要忘记在以下之前添加一些测试:
检查要从中检索数据的内容字段是否存在以及该字段是否为空:
{% if content.fields['myFieldIdentifier'] is defined and not ez_is_field_empty(content, 'myFieldIdentifier') %}
{# do the job #}
{% endif %}
以下是默认情况下如何呈现ImageFieldType:
{% block ezimage_field %}
{% spaceless %}
{% if not ez_is_field_empty( content, field ) %}
<figure {{ block( 'field_attributes' ) }}>
{% set imageAlias = ez_image_alias( field, versionInfo, parameters.alias|default( 'original' ) ) %}
<img src="{% if imageAlias %}{{ asset( imageAlias.uri ) }}{% else %}//:0{% endif %}"{% if imageAlias.width is defined %} width="{{ imageAlias.width }}"{% endif %}{% if imageAlias.height is defined %} height="{{ imageAlias.height }}"{% endif %} alt="{{ field.value.alternativeText }}" />
</figure>
{% endif %}
{% endspaceless %}
{% endblock %}