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.
You will find examples with built-in FieldTypes in EzPublishCoreBundle/Resources/views/content_fields.html.twig
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.
Warning
To be able to reuse built-in blocks, your template must inherit from EzPublishCoreBundle::content_fields.html.twig
.
Registering your template
To make your template available, you must register it to the system.
You can define these rules in a dedicated file instead of ezpublish/config/ezpublish.yml
. Read the cookbook recipe to learn more about it.