function entity_entity_bundle_rename

Implements hook_entity_bundle_rename().

File

drupal/core/modules/entity/entity.module, line 16
Manage the entity system.

Code

function entity_entity_bundle_rename($entity_type, $bundle_old, $bundle_new) {

  // Rename entity displays.
  $entity_info = entity_get_info('entity_display');
  if ($bundle_old !== $bundle_new) {
    $ids = config_get_storage_names_with_prefix('entity.display.' . $entity_type . '.' . $bundle_old);
    foreach ($ids as $id) {
      $id = ConfigStorageController::getIDFromConfigName($id, $entity_info['config_prefix']);
      $display = entity_load('entity_display', $id);
      $new_id = $entity_type . '.' . $bundle_new . '.' . $display->mode;
      $display->id = $new_id;
      $display->bundle = $bundle_new;
      $display
        ->save();
    }
  }

  // Rename entity form displays.
  $entity_info = entity_get_info('entity_form_display');
  if ($bundle_old !== $bundle_new) {
    $ids = config_get_storage_names_with_prefix('entity.form_display.' . $entity_type . '.' . $bundle_old);
    foreach ($ids as $id) {
      $id = ConfigStorageController::getIDFromConfigName($id, $entity_info['config_prefix']);
      $form_display = entity_load('entity_form_display', $id);
      $new_id = $entity_type . '.' . $bundle_new . '.' . $form_display->mode;
      $form_display->id = $new_id;
      $form_display->bundle = $bundle_new;
      $form_display
        ->save();
    }
  }
}