You are here

function hook_quickedit_render_field in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/quickedit/quickedit.api.php \hook_quickedit_render_field()
  2. 10 core/modules/quickedit/quickedit.api.php \hook_quickedit_render_field()

Returns a renderable array for the value of a single field in an entity.

To integrate with in-place field editing when a non-standard render pipeline is used (FieldItemListInterface::view() is not sufficient to render back the field following in-place editing in the exact way it was displayed originally), implement this hook.

Edit module integrates with HTML elements with data-edit-field-id attributes. For example: data-edit-field-id="node/1/<field-name>/und/<module-name>-<custom-id>" After the editing is complete, this hook is invoked on the module with the custom render pipeline identifier (last part of data-edit-field-id) to re-render the field. Use the same logic used when rendering the field for the original display.

The implementation should take care of invoking the prepare_view steps. It should also respect field access permissions.

Parameters

\Drupal\Core\Entity\EntityInterface $entity: The entity containing the field to display.

string $field_name: The name of the field to display.

string $view_mode_id: View mode ID for the custom render pipeline this field view was destined for. This is not a regular view mode ID for the Entity/Field API render pipeline and is provided by the renderer module instead. An example could be Views' render pipeline. In the example of Views, the view mode ID would probably contain the View's ID, display and the row index. Views would know the internal structure of this ID. The only structure imposed on this ID is that it contains dash separated values and the first value is the module name. Only that module's hook implementation will be invoked. Eg. 'views-...-...'.

string $langcode: (Optional) The language code the field values are to be shown in.

Return value

A renderable array for the field value.

See also

\Drupal\Core\Field\FieldItemListInterface::view()

Related topics

2 functions implement hook_quickedit_render_field()

Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.

layout_builder_quickedit_render_field in core/modules/layout_builder/layout_builder.module
Implements hook_quickedit_render_field().
quickedit_test_quickedit_render_field in core/modules/quickedit/tests/modules/quickedit_test.module
Implements hook_quickedit_render_field().
2 invocations of hook_quickedit_render_field()
QuickEditController::renderField in core/modules/quickedit/src/QuickEditController.php
Renders a field.
QuickEditImageController::upload in core/modules/image/src/Controller/QuickEditImageController.php
Returns JSON representing the new file upload, or validation errors.

File

core/modules/quickedit/quickedit.api.php, line 72
Hooks provided by the Edit module.

Code

function hook_quickedit_render_field(\Drupal\Core\Entity\EntityInterface $entity, $field_name, $view_mode_id, $langcode) {
  return [
    '#prefix' => '<div class="example-markup">',
    'field' => $entity
      ->getTranslation($langcode)
      ->get($field_name)
      ->view($view_mode_id),
    '#suffix' => '</div>',
  ];
}