| Versions | |
|---|---|
| 7 | field_delete_instance($instance, $field_cleanup = TRUE) |
Marks a field instance and its data for deletion.
$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.
drupal/
<?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']);
}
}
?>