You are here

function layout_builder_at_form_entity_form_display_edit_form_alter in Layout Builder Asymmetric Translation 8.2

Implements hook_form_FORM_ID_alter() for \Drupal\field_ui\Form\EntityFormDisplayEditForm.

File

./layout_builder_at.module, line 42
Provides hook implementations for Layout Builder Asymmetric Translation.

Code

function layout_builder_at_form_entity_form_display_edit_form_alter(&$form, FormStateInterface $form_state) {
  $hide = TRUE;
  $callback_object = $form_state
    ->getBuildInfo()['callback_object'];
  if (isset($form['fields'][OverridesSectionStorage::FIELD_NAME]) && $callback_object instanceof EntityDisplayFormBase) {

    /** @var \Drupal\Core\Entity\Display\EntityFormDisplayInterface $display */
    $display = $callback_object
      ->getEntity();
    $id = $display
      ->getTargetEntityTypeId() . '.' . $display
      ->getTargetBundle() . '.' . OverridesSectionStorage::FIELD_NAME;
    $fieldConfig = FieldConfig::load($id);
    if ($fieldConfig && $fieldConfig
      ->isTranslatable()) {
      $hide = FALSE;
    }
  }
  if ($hide) {
    layout_builder_form_entity_form_display_edit_form_alter($form, $form_state);
  }
  else {

    // Add an extra validation handler which prevents setting the layout widget
    // to the original one from Layout Builder.
    $form['#validate'][] = 'layout_builder_at_validate_form_display';
  }
}