diff --git a/core/modules/file/file.install b/core/modules/file/file.install index 3ca855e..6e183f1 100644 --- a/core/modules/file/file.install +++ b/core/modules/file/file.install @@ -260,31 +260,3 @@ function file_update_8001() { db_change_field('file_usage', 'id', 'id', $spec); } -/** -* Convert image field's default image configuration to the new format. -*/ -function file_update_8002() { - if (module_exists('field_sql_storage')) { - $fields = field_read_fields(array('type' => 'image'), array('include_deleted' => TRUE, 'include_inactive' => TRUE)); - foreach ($fields as $field) { - if (!empty($field['settings']['default_image'])) { - $field['settings']['default_image'] = array($field['settings']['default_image']); - } - else { - $field['settings']['default_image'] = array(); - } - field_update_field($field); - - $instances = field_read_instances(array('field_name' => $field['field_name'])); - foreach ($instances as $instance) { - if (!empty($instance['settings']['default_image'])) { - $instance['settings']['default_image'] = array($instance['settings']['default_image']); - } - else { - $instance['settings']['default_image'] = array(); - } - field_update_instance($instance); - } - } - } -} diff --git a/core/modules/image/image.install b/core/modules/image/image.install index e4e77d8..b0141c0 100644 --- a/core/modules/image/image.install +++ b/core/modules/image/image.install @@ -138,6 +138,18 @@ function _image_update_get_style_with_effects(array $style) { } /** + * Implements hook_update_dependencies(). + */ +function image_update_dependencies() { + // Convert the format of the 'default_image' setting after fields and + // instances have been moved to the config system. + $dependencies['image'][8003] = array( + 'field' => 8003, + ); + return $dependencies; +} + +/** * Convert existing image styles to the new config system. */ function image_update_8000() { @@ -178,3 +190,38 @@ function image_update_8002() { 'image_style_preview_image' => 'preview_image', )); } + + +/** + * Convert image field's default image configuration to the new format. + */ +function image_update_8003() { + $field_uuids = array(); + + foreach (config_get_storage_names_with_prefix('field.field.') as $config_name) { + $field_config = config($config_name)->get(); + if ($field_config['type'] == 'image') { + $field_uuids[] = $field_config['uuid']; + if (!empty($field_config['settings']['default_image'])) { + $field_config['settings']['default_image'] = array($field_config['settings']['default_image']); + } + else { + $field_config['settings']['default_image'] = array(); + } + $field_config->save(); + } + } + + foreach (config_get_storage_names_with_prefix('field.instance.') as $config_name) { + $instance_config = config($config_name)->get(); + if (in_array($instance_config['field_uuid'], $field_uuids)) { + if (!empty($instance_config['settings']['default_image'])) { + $instance_config['settings']['default_image'] = array($instance_config['settings']['default_image']); + } + else { + $instance_config['settings']['default_image'] = array(); + } + $instance_config->save(); + } + } +}