summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/field/field.api.php8
-rw-r--r--modules/field/field.attach.inc12
2 files changed, 12 insertions, 8 deletions
diff --git a/modules/field/field.api.php b/modules/field/field.api.php
index 2a1c4197b..f2da46c45 100644
--- a/modules/field/field.api.php
+++ b/modules/field/field.api.php
@@ -614,9 +614,13 @@ function hook_field_rename_bundle($bundle_old, $bundle_new) {
*
* This hook is invoked after the field module has performed the operation.
*
- * See field_attach_delete_bundle() for details and arguments.
+ * @param $bundle
+ * The bundle that was just deleted.
+ * @param $instances
+ * An array of all instances that existed for $bundle before it was
+ * deleted.
*/
-function hook_field_attach_delete_bundle($bundle) {
+function hook_field_attach_delete_bundle($bundle, $instances) {
}
/**
diff --git a/modules/field/field.attach.inc b/modules/field/field.attach.inc
index 1a67b4754..acc541f83 100644
--- a/modules/field/field.attach.inc
+++ b/modules/field/field.attach.inc
@@ -729,17 +729,17 @@ function _field_attach_rename_bundle($bundle_old, $bundle_new) {
* The bundle to delete.
*/
function _field_attach_delete_bundle($bundle) {
- // Let other modules act on deleting the bundle
- foreach (module_implements('field_attach_delete_bundle') as $module) {
- $function = $module . '_field_attach_delete_bundle';
- $function($bundle);
- }
-
// Delete the instances themseves
$instances = field_info_instances($bundle);
foreach ($instances as $instance) {
field_delete_instance($instance['field_name'], $bundle);
}
+
+ // Let other modules act on deleting the bundle
+ foreach (module_implements('field_attach_delete_bundle') as $module) {
+ $function = $module . '_field_attach_delete_bundle';
+ $function($bundle, $instances);
+ }
}
/**