You are here

function field_attach_rename_bundle in Drupal 7

Notify field.module that a bundle was renamed.

Parameters

$entity_type: The entity type to which the bundle is bound.

$bundle_old: The previous name of the bundle.

$bundle_new: The new name of the bundle.

Related topics

4 calls to field_attach_rename_bundle()
comment_node_type_update in modules/comment/comment.module
Implements hook_node_type_update().
field_test_rename_bundle in modules/field/tests/field_test.entity.inc
Renames a bundle for test_entity entities.
node_type_save in modules/node/node.module
Saves a node type to the database.
taxonomy_vocabulary_save in modules/taxonomy/taxonomy.module
Saves a vocabulary.

File

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

Code

function field_attach_rename_bundle($entity_type, $bundle_old, $bundle_new) {
  db_update('field_config_instance')
    ->fields(array(
    'bundle' => $bundle_new,
  ))
    ->condition('entity_type', $entity_type)
    ->condition('bundle', $bundle_old)
    ->execute();

  // 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);

  // Let other modules act on renaming the bundle.
  module_invoke_all('field_attach_rename_bundle', $entity_type, $bundle_old, $bundle_new);
}