Defining your FieldType template
In order to be used by ez_render_field() Twig helper, you need to define a template containing a block dedicated to the Field display.
This block consists on a piece of template receiving specific variables you can use to make the display vary.
| Code Block |
|---|
| title | Template for a FieldType with "myfieldtype" identifier |
|---|
|
{% block myfieldtype_field %}
{# Your code here #}
{% endblock %} |
| Info |
|---|
By convention, your block must be named <fieldTypeIdentifier>_field. |
Exposed variables
| Name | Type | Description |
|---|
field | eZ\Publish\API\Repository\Values\Content\Field | The field to display |
contentInfo | eZ\Publish\API\Repository\Values\Content\ContentInfo | The ContentInfo to which the field belongs to |
versionInfo | eZ\Publish\API\Repository\Values\Content\VersionInfo | The VersionInfo to which the field belongs to |
fieldSettings | mixed | Settings of the field (depends on the FieldType) |
parameters | hash | Options passed to ez_render_field() under the parameters key |
attr | hash | The attributes to add the generate the HTML markup. Contains at least a class entry, containing <fieldtypeidentifier>-field |
Reusing blocks
To ease FieldType template development, you can take advantage of all defined blocks by using the block() function.
You can for example take advantage of simple_block_field, simple_inline_field or field_attributes blocks provided in content_fields.html.twig.
| Note |
|---|
|
To be able to reuse built-in blocks, your template must inherit from EzPublishCoreBundle::content_fields.html.twig. |
Registering your template
| Excerpt |
|---|
To make your template available, you must register it to the system. | Code Block |
|---|
| title | exponential/config/exponential.yml |
|---|
| exponential:
system:
my_siteaccess:
field_templates:
-
template: "AcmeTestBundle:fields:my_field_template.html.twig"
# Priority is optional (default is 0). The higher it is, the higher your template gets in the list.
priority: 10 |
|