diff -u b/core/modules/field/src/EntityDisplayRebuilder.php b/core/modules/field/src/EntityDisplayRebuilder.php --- b/core/modules/field/src/EntityDisplayRebuilder.php +++ b/core/modules/field/src/EntityDisplayRebuilder.php @@ -2,11 +2,10 @@ namespace Drupal\field; +use Drupal\Core\Entity\Entity\EntityFormDisplay; +use Drupal\Core\Entity\Entity\EntityViewDisplay; use Drupal\Core\Entity\EntityDisplayRepositoryInterface; -use Drupal\Core\Entity\EntityTypeInterface; use Drupal\Core\Entity\EntityTypeManagerInterface; -use Drupal\Core\Entity\Entity\EntityViewDisplay; -use Drupal\Core\Entity\Entity\EntityFormDisplay; /** * Rebuilds displays. @@ -42,13 +41,16 @@ /** * Rebuild displays for all Entity Types. + * + * @param bool $include_default_displays + * Add 'default' displays. Defaults to FALSE. */ - public function rebuildAllEntityTypeDisplays() { + public function rebuildAllEntityTypeDisplays($include_default_displays = FALSE) { // Loop through all entity types. $entity_types = $this->entityTypeManager->getDefinitions(); foreach ($entity_types as $entity_type_id => $entity_type_definition) { - $this->rebuildEntityTypeDisplays($entity_type_id); + $this->rebuildEntityTypeDisplays($entity_type_id, $include_default_displays); } } @@ -57,19 +59,24 @@ * Rebuild displays for single Entity Type. * * @param string $entity_type_id - * The entity type machine name. + * The entity type machine name. + * @param bool $include_default_displays + * Add 'default' displays. Defaults to FALSE. */ - public function rebuildEntityTypeDisplays($entity_type_id) { + public function rebuildEntityTypeDisplays($entity_type_id, $include_default_displays = FALSE) { // Loop through all bundles. - $entity_bundles = entity_get_bundles($entity_type_id); // @todo: inject service here. + $entity_bundles = entity_get_bundles($entity_type_id); foreach ($entity_bundles as $bundle => $bundle_definition) { // Get the displays. $view_modes = $this->entityDisplayRepository->getViewModes($entity_type_id); $form_modes = $this->entityDisplayRepository->getFormModes($entity_type_id); - // Explicitly add the default displays. - $view_modes['default'] = ['status' => TRUE]; - $form_modes['default'] = ['status' => TRUE]; + + // Explicitly add default displays. + if ($include_default_displays) { + $view_modes['default'] = []; + $form_modes['default'] = []; + } // Update view modes displays. foreach ($view_modes as $view_mode_id => $view_mode) { @@ -79,8 +86,8 @@ } // Update form modes displays. foreach ($form_modes as $form_mode_id => $form_mode) { - if ($form_display = EntityFormDisplay::load($entity_type_id . '.' . $bundle . '.' . $form_mode_id)) { - $form_display->save(); + if ($display = EntityFormDisplay::load($entity_type_id . '.' . $bundle . '.' . $form_mode_id)) { + $display->save(); } }