function field_entity_bundle_rename

Implements hook_entity_bundle_rename().

Related topics

File

drupal/core/modules/field/field.attach.inc, line 1555
Field attach API, allowing entities (nodes, users, ...) to be 'fieldable'.

Code

function field_entity_bundle_rename($entity_type, $bundle_old, $bundle_new) {
  $instances = field_read_instances();
  foreach ($instances as $instance) {
    if ($instance->entity_type == $entity_type && $instance->bundle == $bundle_old) {
      $id_new = $instance['entity_type'] . '.' . $bundle_new . '.' . $instance['field_name'];
      $instance->id = $id_new;
      $instance->bundle = $bundle_new;
      $instance
        ->allowBundleRename();
      $instance
        ->save();
    }
  }

  // Clear the cache.
  field_cache_clear();

  // Update bundle settings.
  $settings = variable_get('field_bundle_settings_' . $entity_type . '__' . $bundle_old, array());
  variable_set('field_bundle_settings_' . $entity_type . '__' . $bundle_new, $settings);
  variable_del('field_bundle_settings_' . $entity_type . '__' . $bundle_old);
}