field_delete_instance

  1. drupal
    1. 7
Versions
7 field_delete_instance($instance, $field_cleanup = TRUE)

Marks a field instance and its data for deletion.

Parameters

$instance An instance structure.

$field_cleanup If TRUE, the field will be deleted as well if its last instance is being deleted. If FALSE, it is the caller's responsability to handle the case of fields left without instances. Defaults to TRUE.

Related topics

▾ 4 functions call field_delete_instance()

field_attach_delete_bundle in drupal/modules/field/field.attach.inc
Notify field.module the a bundle was deleted.
field_delete_field in drupal/modules/field/field.crud.inc
Marks a field and its instances and data for deletion.
field_ui_field_delete_form_submit in drupal/modules/field_ui/field_ui.admin.inc
Removes a field instance from a bundle.
node_example_uninstall in examples/node_example/node_example.install
Implements hook_uninstall().

Code

drupal/modules/field/field.crud.inc, line 735

<?php
function field_delete_instance($instance, $field_cleanup = TRUE) {
  // Mark the field instance for deletion.
  db_update('field_config_instance')
    ->fields(array('deleted' => 1))
    ->condition('field_name', $instance['field_name'])
    ->condition('entity_type', $instance['entity_type'])
    ->condition('bundle', $instance['bundle'])
    ->execute();

  // Clear the cache.
  field_cache_clear();

  // Mark instance data for deletion.
  $field = field_info_field($instance['field_name']);
  module_invoke($field['storage']['module'], 'field_storage_delete_instance', $instance);

  // Let modules react to the deletion of the instance.
  module_invoke_all('field_delete_instance', $instance);

  // Delete the field itself if we just deleted its last instance.
  if ($field_cleanup && count($field['bundles']) == 0) {
    field_delete_field($field['field_name']);
  }
}
?>