public function QuickEditIntegration::quickEditRenderField in Drupal 8
Same name and namespace in other branches
- 9 core/modules/layout_builder/src/QuickEditIntegration.php \Drupal\layout_builder\QuickEditIntegration::quickEditRenderField()
Re-renders a field rendered by Layout Builder, edited with Quick Edit.
Parameters
\Drupal\Core\Entity\FieldableEntityInterface $entity: The entity.
string $field_name: The field name.
string $quick_edit_view_mode_id: The Quick Edit view mode ID.
string $langcode: The language code.
Return value
array The re-rendered field.
File
- core/
modules/ layout_builder/ src/ QuickEditIntegration.php, line 249
Class
- QuickEditIntegration
- Helper methods for Quick Edit module integration.
Namespace
Drupal\layout_builderCode
public function quickEditRenderField(FieldableEntityInterface $entity, $field_name, $quick_edit_view_mode_id, $langcode) {
list($entity_view_mode, $delta, $component_uuid) = static::deconstructViewModeId($quick_edit_view_mode_id);
$entity_build = $this->entityTypeManager
->getViewBuilder($entity
->getEntityTypeId())
->view($entity, $entity_view_mode, $langcode);
$this
->buildEntityView($entity_build);
if (isset($entity_build['_layout_builder'][$delta])) {
foreach (Element::children($entity_build['_layout_builder'][$delta]) as $region) {
if (isset($entity_build['_layout_builder'][$delta][$region][$component_uuid])) {
return $entity_build['_layout_builder'][$delta][$region][$component_uuid]['content'];
}
}
}
$this
->getLogger('layout_builder')
->warning('The field "%field" failed to render.', [
'%field' => $field_name,
]);
return [];
}