From 336fef3d434ed48163f53dbf494075f0b9278f7a Mon Sep 17 00:00:00 2001 From: catch <catch@35733.no-reply.drupal.org> Date: Fri, 14 Oct 2011 05:12:38 +0900 Subject: [PATCH] Issue #1211008 by yched: Split field_bundle_settings() out per bundle. --- modules/field/field.attach.inc | 15 ++++----------- modules/field/field.module | 8 ++------ 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/modules/field/field.attach.inc b/modules/field/field.attach.inc index c643e4016628..3f5520a57f5d 100644 --- a/modules/field/field.attach.inc +++ b/modules/field/field.attach.inc @@ -1309,12 +1309,9 @@ function field_attach_rename_bundle($entity_type, $bundle_old, $bundle_new) { field_cache_clear(); // Update bundle settings. - $settings = variable_get('field_bundle_settings', array()); - if (isset($settings[$entity_type][$bundle_old])) { - $settings[$entity_type][$bundle_new] = $settings[$entity_type][$bundle_old]; - unset($settings[$entity_type][$bundle_old]); - variable_set('field_bundle_settings', $settings); - } + $settings = variable_get('field_bundle_settings_' . $entity_type . '__' . $bundle_old, array()); + variable_set('field_bundle_settings_' . $entity_type . '__' . $bundle_new, $settings); + variable_del('field_bundle_settings_' . $entity_type . '__' . $bundle_old); // Let other modules act on renaming the bundle. module_invoke_all('field_attach_rename_bundle', $entity_type, $bundle_old, $bundle_new); @@ -1348,11 +1345,7 @@ function field_attach_delete_bundle($entity_type, $bundle) { field_cache_clear(); // Clear bundle display settings. - $settings = variable_get('field_bundle_settings', array()); - if (isset($settings[$entity_type][$bundle])) { - unset($settings[$entity_type][$bundle]); - variable_set('field_bundle_settings', $settings); - } + variable_del('field_bundle_settings_' . $entity_type . '__' . $bundle); // Let other modules act on deleting the bundle. module_invoke_all('field_attach_delete_bundle', $entity_type, $bundle, $instances); diff --git a/modules/field/field.module b/modules/field/field.module index f04c39c0cab9..0a9d5e40ace3 100644 --- a/modules/field/field.module +++ b/modules/field/field.module @@ -610,16 +610,12 @@ function _field_sort_items_value_helper($a, $b) { * If no $settings are passed, the current settings are returned. */ function field_bundle_settings($entity_type, $bundle, $settings = NULL) { - $stored_settings = variable_get('field_bundle_settings', array()); - if (isset($settings)) { - $stored_settings[$entity_type][$bundle] = $settings; - - variable_set('field_bundle_settings', $stored_settings); + variable_set('field_bundle_settings_' . $entity_type . '__' . $bundle, $settings); field_info_cache_clear(); } else { - $settings = isset($stored_settings[$entity_type][$bundle]) ? $stored_settings[$entity_type][$bundle] : array(); + $settings = variable_get('field_bundle_settings_' . $entity_type . '__' . $bundle, array()); $settings += array( 'view_modes' => array(), 'extra_fields' => array(), -- GitLab