function hook_field_delete
7.x field.api.php | hook_field_delete($entity_type, $entity, $field, $instance, $langcode, &$items) |
Define custom delete behavior for this module's field data.
This hook is invoked from field_attach_delete() on the module that defines a field, during the process of deleting an entity object (node, taxonomy term, etc.). It is invoked just before the data for this field on the particular entity object is deleted from field storage. Only field modules that are storing or tracking information outside the standard field storage mechanism need to implement this hook.
Parameters
$entity_type: The type of $entity.
$entity: The entity for the operation.
$field: The field structure for the operation.
$instance: The instance structure for $field on $entity's bundle.
$langcode: The language associated with $items.
$items: $entity->{$field['field_name']}[$langcode], or an empty array if unset.
See also
Related topics
Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.
- field_test_field_delete in drupal-7.x/
modules/ field/ tests/ field_test.field.inc - Implements hook_field_delete().
- file_field_delete in drupal-7.x/
modules/ file/ file.field.inc - Implements hook_field_delete().
- image_field_delete in drupal-7.x/
modules/ image/ image.field.inc - Implements hook_field_delete().
- profile_field_delete in drupal-7.x/
modules/ profile/ profile.admin.inc - Menu callback; deletes a field from all user profiles.
- field_attach_delete in drupal-7.x/
modules/ field/ field.attach.inc - Delete field data for an existing entity. This deletes all revisions of field data for the entity.
- field_purge_data in drupal-7.x/
modules/ field/ field.crud.inc - Purges the field data for a single field on a single pseudo-entity.
- node_delete_multiple in drupal-7.x/
modules/ node/ node.module - Deletes multiple nodes.
File
- drupal-7.x/
modules/ field/ field.api.php, line 596
Code
function hook_field_delete($entity_type, $entity, $field, $instance, $langcode, &$items) {
list($id, $vid, $bundle) = entity_extract_ids($entity_type, $entity);
foreach ($items as $delta => $item) {
// For hook_file_references(), remember that this is being deleted.
$item['file_field_name'] = $field['field_name'];
// Pass in the ID of the object that is being removed so all references can
// be counted in hook_file_references().
$item['file_field_type'] = $entity_type;
$item['file_field_id'] = $id;
file_field_delete_file($item, $field, $entity_type, $id);
}
}