Fixes bug mentioned here: http://drupal.org/comment/reply/300084?page=1#comment-3067620 diff -Nurp ../cck.orig/modules/content_multigroup/content_multigroup.admin.inc ./modules/content_multigroup/content_multigroup.admin.inc --- ../cck.orig/modules/content_multigroup/content_multigroup.admin.inc 2010-06-10 10:28:31.000000000 -0500 +++ ./modules/content_multigroup/content_multigroup.admin.inc 2010-06-10 10:29:08.000000000 -0500 @@ -355,22 +355,13 @@ function content_multigroup_display_over // We have some numeric keys here, so we can't use array_merge. foreach ($values as $k => $v) { - $group['settings']['multigroup']['subgroup'][$k] = $v; + $form_state['values'][$group_name]['settings']['multigroup']['subgroup'][$k] = $v; } - // Update the group information in the database. Note that - // 'fieldgroup_data' in cache tables are also cleared here, - // but we need to reset static caches of fieldgroup_groups(). - fieldgroup_save_group($form['#type_name'], $group); - $reset_cache = TRUE; - // Remove the subgroup from $form_state. unset($form_state['values'][$key]); } } - if ($reset_cache) { - fieldgroup_groups('', FALSE, TRUE); - } } /** diff -Nurp ../cck.orig/modules/fieldgroup/fieldgroup.module ./modules/fieldgroup/fieldgroup.module --- ../cck.orig/modules/fieldgroup/fieldgroup.module 2010-06-10 10:28:31.000000000 -0500 +++ ./modules/fieldgroup/fieldgroup.module 2010-06-10 10:29:08.000000000 -0500 @@ -519,6 +519,18 @@ function fieldgroup_display_overview_for foreach ($form_values as $key => $values) { if (in_array($key, $form['#groups'])) { $group = $groups[$key]; + // Multigroup data (namely, subgroup data) ends up in the settings array as well + // Prevent this data from ending up inside of ['settings']['display'] + if (is_array($values['settings']) && array_key_exists('multigroup', $values['settings'])){ + if (is_array($group['settings']['multigroup'])){ + foreach ($values['settings']['multigroup'] as $mg_key => $mg_values){ + $group['settings']['multigroup'][$mg_key] = $values['settings']['multigroup'][$mg_key]; + } + } else { + $group['settings']['multigroup'] = $values['settings']['multigroup']; + } + unset($values['settings']['multigroup']); + } // We have some numeric keys here, so we can't use array_merge. $group['settings']['display'] = $values + $group['settings']['display']; fieldgroup_save_group($form['#type_name'], $group);