function layout_builder_st_entity_type_alter in Layout Builder Symmetric Translations 8
Implements hook_entity_type_alter().
Copied from https://www.drupal.org/project/drupal/issues/2946333#comment-13129737
File
- ./
layout_builder_st.module, line 36
Code
function layout_builder_st_entity_type_alter(array &$entity_types) {
// Replace entity_view_display class with our own.
/** @var \Drupal\Core\Entity\EntityTypeInterface[] $entity_types */
$entity_types['entity_view_display']
->setClass(LayoutBuilderEntityViewDisplay::class);
/** @var \Drupal\Core\Entity\EntityTypeInterface $entity_type */
foreach ($entity_types as $entity_type) {
if ($entity_type
->entityClassImplements(FieldableEntityInterface::class)) {
$form_class = $entity_type
->getFormClass('layout_builder');
if ($form_class !== CoreOverridesEntityForm::class) {
\Drupal::messenger()
->addError(t('The "layout_builder" form class for @entity_type entity type is already overriden by @class. This is incompatible with the layout_builder_st module'), [
'@entity_type' => $entity_type
->getLabel(),
'@class' => $form_class,
]);
}
$entity_type
->setFormClass('layout_builder', OverridesEntityForm::class);
}
}
if (isset($entity_types['block_content'])) {
$entity_types['block_content']
->setFormClass('layout_builder_translate', BlockContentInlineBlockTranslateForm::class);
}
}