eZ Publish 5:获取类的图像属性的绝对URL

时间:2014-06-10 16:58:09

标签: symfony twig ezpublish

在eZ Publish 5中,我有一个带有图像属性的类。

在树枝模板中,我可以从属性参数中获取相对网址(例如' / var / site / storage / image /...&# 39;)。

现在我需要绝对的网址。获得它的最佳途径是什么?

我是否应该获取请求信息并将基本网址附加到相关网址?或者有一种内置的方法吗?

由于

2 个答案:

答案 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 %}