diff options
Diffstat (limited to 'modules/field/field.module')
-rw-r--r-- | modules/field/field.module | 47 |
1 files changed, 29 insertions, 18 deletions
diff --git a/modules/field/field.module b/modules/field/field.module index 75dc3d431..4d031e935 100644 --- a/modules/field/field.module +++ b/modules/field/field.module @@ -219,6 +219,10 @@ function field_modules_disabled($modules) { ->fields(array('active' => 0)) ->condition('module', $module) ->execute(); + db_update('field_config') + ->fields(array('storage_active' => 0)) + ->condition('storage_module', $module) + ->execute(); db_update('field_config_instance') ->fields(array('widget_active' => 0)) ->condition('widget_module', $module) @@ -234,25 +238,32 @@ function field_modules_disabled($modules) { * The name of the module to update on. */ function field_associate_fields($module) { - $module_fields = module_invoke($module, 'field_info'); - if ($module_fields) { - foreach ($module_fields as $name => $field_info) { - watchdog('field', 'Updating field type %type with module %module.', array('%type' => $name, '%module' => $module)); - db_update('field_config') - ->fields(array('module' => $module, 'active' => 1)) - ->condition('type', $name) - ->execute(); - } + // Associate field types. + $field_types =(array) module_invoke($module, 'field_info'); + foreach ($field_types as $name => $field_info) { + watchdog('field', 'Updating field type %type with module %module.', array('%type' => $name, '%module' => $module)); + db_update('field_config') + ->fields(array('module' => $module, 'active' => 1)) + ->condition('type', $name) + ->execute(); } - $module_widgets = module_invoke($module, 'widget_info'); - if ($module_widgets) { - foreach ($module_widgets as $name => $widget_info) { - watchdog('field', 'Updating widget type %type with module %module.', array('%type' => $name, '%module' => $module)); - db_update('field_config_instance') - ->fields(array('widget_module' => $module, 'widget_active' => 1)) - ->condition('widget_type', $name) - ->execute(); - } + // Associate storage backends. + $storage_types = (array) module_invoke($module, 'field_storage_info'); + foreach ($storage_types as $name => $storage_info) { + watchdog('field', 'Updating field storage %type with module %module.', array('%type' => $name, '%module' => $module)); + db_update('field_config') + ->fields(array('storage_module' => $module, 'storage_active' => 1)) + ->condition('storage_type', $name) + ->execute(); + } + // Associate widget types. + $widget_types = (array) module_invoke($module, 'field_widget_info'); + foreach ($widget_types as $name => $widget_info) { + watchdog('field', 'Updating widget type %type with module %module.', array('%type' => $name, '%module' => $module)); + db_update('field_config_instance') + ->fields(array('widget_module' => $module, 'widget_active' => 1)) + ->condition('widget_type', $name) + ->execute(); } } |