W3cubDocs

/Drupal 8

function hook_quickedit_render_field

hook_quickedit_render_field(Drupal\Core\Entity\EntityInterface $entity, $field_name, $view_mode_id, $langcode)

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

Hooks
Define functions that alter the behavior of Drupal core.

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 array(
    '#prefix' => '<div class="example-markup">',
    'field' => $entity->getTranslation($langcode)->get($field_name)->view($view_mode_id),
    '#suffix' => '</div>',
  );
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!modules!quickedit!quickedit.api.php/function/hook_quickedit_render_field/8.1.x