diff --git a/media.install b/media.install index 04f0e8a..99df041 100644 --- a/media.install +++ b/media.install @@ -510,32 +510,31 @@ function media_update_7016() { // Update the field_bundle_settings configuration variable: move media bundle // settings to file bundles, and move settings of the old self-referencing // file field to the new file pseudo-field. - $settings = variable_get('field_bundle_settings', array()); - if (!isset($settings['file'])) { - $settings['file'] = array(); - } - if (isset($settings['media'])) { - $settings['file'] = array_merge($settings['file'], $settings['media']); - unset($settings['media']); - } foreach ($instances as $instance) { if ($instance['field_name'] === 'file' && !$instance['deleted']) { + $file_settings = field_bundle_settings('file', $instance['bundle']); + $media_settings = field_bundle_settings('media', $instance['bundle']); + $file_settings = array_merge($file_settings, $media_settings); if (isset($instance['widget']['weight'])) { - $settings['file'][$instance['bundle']]['extra_fields']['form']['file']['weight'] = $instance['widget']['weight']; + $file_settings['extra_fields']['form']['file']['weight'] = $instance['widget']['weight']; } if (isset($instance['display'])) { foreach ($instance['display'] as $view_mode => $display) { if (isset($display['weight'])) { - $settings['file'][$instance['bundle']]['extra_fields']['display']['file'][$view_mode]['weight'] = $display['weight']; + $file_settings['extra_fields']['display']['file'][$view_mode]['weight'] = $display['weight']; } if (isset($display['type'])) { - $settings['file'][$instance['bundle']]['extra_fields']['display']['file'][$view_mode]['visible'] = ($display['type'] != 'hidden'); + $file_settings['extra_fields']['display']['file'][$view_mode]['visible'] = ($display['type'] != 'hidden'); } } } + field_bundle_settings('file', $instance['bundle'], $file_settings); } } - variable_set('field_bundle_settings', $settings); + // Delete old media bundle settings. + db_delete('variable') + ->condition('name', db_like('field_bundle_settings_media__') . '%', 'LIKE') + ->execute(); // Copy field formatter settings of old self-referencing file field to file // pseudo-field formatter settings.