Skip to content

Field Twig functions

Field Twig functions render specific fields of a content item and provide information about them.

ibexa_field() returns the Field object, and ibexa_field_value() returns the Field's raw value. ibexa_render_field() is the Twig function intended for rendering the field on the front page.

You can get additional information about a field by using the following Twig functions:

Field rendering

ibexa_render_field()

ibexa_render_field() renders the selected field of a content item. The field is rendered with the default template, but you can optionally pass a different template as parameter as well.

Argument Type Description
content Ibexa\Contracts\Core\Repository\Values\Content\Content Content item the field belongs to.
fieldDefinitionIdentifier string Field identifier.
params hash (optional) Hash of parameters passed to the template block.
1
2
3
4
5
6
7
8
9
{{ ibexa_render_field(content, 'title') }}

{{ ibexa_render_field(content, 'image', {
    'template': '@ibexadesign/fields/image.html.twig',
    'attr': {class: 'thumbnail-image'},
    'parameters': {
        'alias': 'small'
    }
}) }}

Parameters

You can pass the following parameters to ibexa_render_field():

  • lang - language to render the field in (overrides the current language), must be a valid locale in xxx-YY format
  • template - field template to use
  • attr - hash of HTML attributes to add to the tag
  • parameters - arbitrary parameters to pass to the template block. Some field types, like the MapLocation field type, expect specific parameters.

Examples

1
2
3
4
5
{{ ibexa_render_field(content, 'title', {
    'attr': {
        class: 'article-title'
    }
}) }}

Field values

ibexa_field_value()

ibexa_field_value() returns the field value object.

The function returns the value of the field only. To render the field with default or custom templates, use ibexa_render_field() instead. If the content item doesn't have a translation in the prioritized or passed language, the function returns the value in the main language.

Argument Type Description
content Ibexa\Contracts\Core\Repository\Values\Content\Content Content item the field belongs to.
fieldDefIdentifier string Identifier of the field.
forcedLanguage string (optional) Language to use (for example, "fre-FR").
1
{{ ibexa_field_value(content, 'image') }}

ibexa_field()

ibexa_field() returns the field object. The field gives you access to the field value, the field's definition identifier, and field type identifier. If the content item doesn't have a translation in the prioritized or passed language, the function returns the field object in the main language.

Argument Type Description
content Ibexa\Contracts\Core\Repository\Values\Content\Content Content item the field belongs to.
fieldDefIdentifier string Identifier of the field.
forcedLanguage string {optional) Language to use (for example, "fre-FR").

You can access the field's value by using (ibexa_field(content, 'my_field').value), but it's recommended to use the dedicated ibexa_field_value() function for this.

You can use ibexa_field() to access the field type identifier:

1
{{ ibexa_field(content, 'my_field').fieldTypeIdentifier }}

Field information

ibexa_field_name()

ibexa_field_name() returns the name of a content item's field.

The function uses prioritized languages from SiteAccess settings unless you pass another language as forcedLanguage. If the content item doesn't have a translation in the prioritized or passed language, the function returns the name in the main language.

Argument Type Description
content Ibexa\Contracts\Core\Repository\Values\Content\Content or Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo Content item the field belongs to.
fieldDefIdentifier string Identifier of the field.
forcedLanguage string (optional) Language to use (for example, fre-FR).
1
2
3
{{ ibexa_field_name(content, 'title') }}

{{ ibexa_field_name(content, 'title', 'ger-DE') }}

ibexa_field_description()

ibexa_field_description() returns the description of a content item's field.

The function uses prioritized languages from SiteAccess settings unless you pass another language as forcedLanguage. If the content item doesn't have a translation in the prioritized or passed language, the function returns the description in the main language.

Argument Type Description
content Ibexa\Contracts\Core\Repository\Values\Content\Content or Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo Content item the field belongs to.
fieldDefIdentifier string Identifier of the field.
forcedLanguage string (optional) Language to use (for example, fre-FR).
1
2
3
{{ ibexa_field_description(content, 'title') }}

{{ ibexa_field_description(content, 'title', 'ger-DE') }}

ibexa_field_is_empty()

ibexa_field_is_empty() returns Boolean information whether a given field of a content item is empty.

Argument Type Description
content Ibexa\Contracts\Core\Repository\Values\Content\Content or Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo Content item the field belongs to.
fieldDefIdentifier string Identifier of the field.
forcedLanguage string (optional) Language to use (for example, fre-FR).
1
{{ ibexa_field_is_empty(content, 'title') }}

Examples

For example, use ibexa_field_is_empty() to check whether a field is empty or filled before rendering it:

1
2
3
{% if not ibexa_field_is_empty(content, 'image') %}
    {{ ibexa_render_field(content, 'image') }}
{% endif %}

ibexa_field_group_name()

ibexa_field_group_name() returns a human-readable name of a field group.

Argument Type Description
fieldGroupIdentifier string Field group identifier.
1
{{ ibexa_field_group_name('content') }}

ibexa_has_field()

ibexa_has_field() returns Boolean information whether a field is present in the content item.

Argument Type Description
content Ibexa\Contracts\Core\Repository\Values\Content\Content Content item the field may belong to.
fieldDefIdentifier string Identifier of the field.
1
2
3
{% if ibexa_has_field(content, 'existing') %}
    {{ ibexa_render_field(content, 'existing') }}
{% endif %}