diff --git a/sites/all/modules/filefield/filefield.module b/sites/all/modules/filefield/filefield.module index 78883d1..67201de 100644 --- a/sites/all/modules/filefield/filefield.module +++ b/sites/all/modules/filefield/filefield.module @@ -598,25 +598,32 @@ function filefield_js($type_name, $field_name, $delta) { $form['#post'] = $_POST; $form = form_builder($form_id, $form, $form_state); - // Update the cached form with the new element at the right place in the form. - if (module_exists('fieldgroup') && ($group_name = _fieldgroup_field_get_group($type_name, $field_name))) { - $tree = _fieldgroup_get_tree($type_name); - $parents = array(0 => $group_name); - while ($group_name = $tree[$group_name]['parents'][0]) { - $parents[] = $group_name; - } - $parents = array_reverse($parents); - - $element = $form; - foreach ($parents as $parent) { - $element = $element[$parent]; - } - - $form_element = $element[$delta][$field_name]; - } - else { - $form_element = $form[$field_name][$delta]; - } + // Update the cached form with the new element at the right place in the form. + if (module_exists('fieldgroup') && ($group_name = _fieldgroup_field_get_group($type_name, $field_name))) { + if (isset($form['#multigroups']) && isset($form['#multigroups'][$group_name][$field_name])) { + $tree = _fieldgroup_get_tree($type_name); + $parents = array(0 => $group_name); + + while ($group_name = $tree[$group_name]['parents'][0]) { + $parents[] = $group_name; + } + $parents = array_reverse($parents); + + $element = $form; + + foreach ($parents as $parent) { + $element = $element[$parent]; + } + + $form_element = $element[$delta][$field_name]; + } + else { + $form_element = $form[$group_name][$field_name][$delta]; + } + } + else { + $form_element = $form[$field_name][$delta]; + } if (!isset($form_element)) { $form_element = $form[$field_name][$delta];