From 8e50687d8b69a07ddbacf65d6c7785a37bb41ab1 Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Sun, 26 Apr 2009 09:18:20 +0000 Subject: [PATCH] - Patch #441180 by bjaspan, yched: field_attach_delete_bundle() called hook_field_attach_delete_bundle too soon. --- modules/field/field.api.php | 8 ++++++-- modules/field/field.attach.inc | 12 ++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/modules/field/field.api.php b/modules/field/field.api.php index 2a1c4197b7e..f2da46c45b1 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 1a67b47544f..acc541f8364 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); + } } /**