diff options
author | Dries Buytaert <dries@buytaert.net> | 2009-04-26 09:18:20 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2009-04-26 09:18:20 +0000 |
commit | 8e50687d8b69a07ddbacf65d6c7785a37bb41ab1 (patch) | |
tree | 913a07dd9459aae1fcad8a24e71afddfa417c43d | |
parent | 1c076bc89f7a7374859e025c99f2eb5ea092188e (diff) | |
download | brdo-8e50687d8b69a07ddbacf65d6c7785a37bb41ab1.tar.gz brdo-8e50687d8b69a07ddbacf65d6c7785a37bb41ab1.tar.bz2 |
- Patch #441180 by bjaspan, yched: field_attach_delete_bundle() called hook_field_attach_delete_bundle too soon.
-rw-r--r-- | modules/field/field.api.php | 8 | ||||
-rw-r--r-- | 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 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); + } } /** |