Loading modules/custom_elements_ui/custom_elements_ui.module +24 −6 Original line number Diff line number Diff line Loading @@ -29,11 +29,13 @@ function custom_elements_ui_entity_type_alter(array &$entity_types) { /** * Implements hook_form_FORM_ID_alter() for \Drupal\field_ui\Form\EntityFormDisplayEditForm. */ function custom_elements_ui_form_entity_form_display_edit_form_alter(&$form, FormStateInterface $form_state) { function custom_elements_ui_form_entity_view_display_edit_form_alter(&$form, FormStateInterface $form_state) { /** @var \Drupal\layout_builder\Form\LayoutBuilderEntityViewDisplayForm $display_form */ $display_form = $form_state->getFormObject(); /** @var \Drupal\Core\Entity\Entity\EntityViewDisplay $display_entity */ $display_entity = $display_form->getEntity(); $is_enabled = $display_entity->getThirdPartySetting('ce', 'enabled'); // @todo Get value from config. // $is_enabled = $this->third_party_settings[$module][$key]; $is_enabled = FALSE; if ($is_enabled) { // Hide the table of fields. $form['fields']['#access'] = FALSE; Loading @@ -51,18 +53,34 @@ function custom_elements_ui_form_entity_form_display_edit_form_alter(&$form, For '#access' => $is_enabled, ]; $form['layout'] = [ $form['ce'] = [ '#type' => 'details', '#open' => TRUE, '#title' => t('Custom Elements'), '#tree' => TRUE, ]; $form['layout']['enabled'] = [ $form['ce']['enabled'] = [ '#type' => 'checkbox', '#title' => t('Use Custom Elements Builder'), // @todo What about "Custom Elements Builder" naming? '#default_value' => $is_enabled, ]; $form['actions']['submit']['#submit'][] = '_custom_elements_ui_entity_view_display_edit_form_submit'; } /** * Form submission handler for entity_view_display_edit_form. * * @see custom_elements_ui_form_entity_view_display_edit_form_alter() */ function _custom_elements_ui_entity_view_display_edit_form_submit($form, FormStateInterface $form_state) { $set_enabled = (bool) $form_state->getValue(['ce', 'enabled'], FALSE); /** @var \Drupal\Core\Entity\EntityFormInterface $display_form */ $display_form = $form_state->getFormObject(); /** @var \Drupal\Core\Entity\Entity\EntityViewDisplay $display_entity */ $display_entity = $display_form->getEntity(); $display_entity->setThirdPartySetting('ce', 'enabled', $set_enabled); $display_entity->save(); } Loading
modules/custom_elements_ui/custom_elements_ui.module +24 −6 Original line number Diff line number Diff line Loading @@ -29,11 +29,13 @@ function custom_elements_ui_entity_type_alter(array &$entity_types) { /** * Implements hook_form_FORM_ID_alter() for \Drupal\field_ui\Form\EntityFormDisplayEditForm. */ function custom_elements_ui_form_entity_form_display_edit_form_alter(&$form, FormStateInterface $form_state) { function custom_elements_ui_form_entity_view_display_edit_form_alter(&$form, FormStateInterface $form_state) { /** @var \Drupal\layout_builder\Form\LayoutBuilderEntityViewDisplayForm $display_form */ $display_form = $form_state->getFormObject(); /** @var \Drupal\Core\Entity\Entity\EntityViewDisplay $display_entity */ $display_entity = $display_form->getEntity(); $is_enabled = $display_entity->getThirdPartySetting('ce', 'enabled'); // @todo Get value from config. // $is_enabled = $this->third_party_settings[$module][$key]; $is_enabled = FALSE; if ($is_enabled) { // Hide the table of fields. $form['fields']['#access'] = FALSE; Loading @@ -51,18 +53,34 @@ function custom_elements_ui_form_entity_form_display_edit_form_alter(&$form, For '#access' => $is_enabled, ]; $form['layout'] = [ $form['ce'] = [ '#type' => 'details', '#open' => TRUE, '#title' => t('Custom Elements'), '#tree' => TRUE, ]; $form['layout']['enabled'] = [ $form['ce']['enabled'] = [ '#type' => 'checkbox', '#title' => t('Use Custom Elements Builder'), // @todo What about "Custom Elements Builder" naming? '#default_value' => $is_enabled, ]; $form['actions']['submit']['#submit'][] = '_custom_elements_ui_entity_view_display_edit_form_submit'; } /** * Form submission handler for entity_view_display_edit_form. * * @see custom_elements_ui_form_entity_view_display_edit_form_alter() */ function _custom_elements_ui_entity_view_display_edit_form_submit($form, FormStateInterface $form_state) { $set_enabled = (bool) $form_state->getValue(['ce', 'enabled'], FALSE); /** @var \Drupal\Core\Entity\EntityFormInterface $display_form */ $display_form = $form_state->getFormObject(); /** @var \Drupal\Core\Entity\Entity\EntityViewDisplay $display_entity */ $display_entity = $display_form->getEntity(); $display_entity->setThirdPartySetting('ce', 'enabled', $set_enabled); $display_entity->save(); }