Index: fieldgroup.module =================================================================== --- fieldgroup.module +++ fieldgroup.module @@ -61,6 +61,11 @@ function fieldgroup_edit_group($content_type, $group_name) { $groups = fieldgroup_groups($content_type); $group = $groups[$group_name]; + + $group_options[0] = t('Top'); + foreach ($groups AS $name => $item) { + $group_options[$name] = $item['label']; + } if ($group_name == 'add_group' && arg(6) != 'edit') { //adding a new one @@ -99,6 +104,12 @@ '#title' => t('Collapsed'), '#default_value' => $group['settings']['collapsed'], ); + $form['settings']['parent'] = array( + '#type' => 'select', + '#title' => t('Parent Group'), + '#default_value' => $group['settings']['parent'], + '#options' => $group_options + ); $form['settings']['#tree'] = TRUE; $form['description'] = array( '#type' => 'textarea', @@ -242,18 +253,36 @@ node_get_base($form['#node']) == 'content') { foreach (fieldgroup_groups($form['type']['#value']) as $group_name => $group) { - $form[$group_name] = array( - '#type' => 'fieldset', - '#title' => t($group['label']), - '#collapsed' => $group['settings']['collapsed'], - '#collapsible' => $group['settings']['collapsible'], - '#description' => $group['description'], - '#weight' => $group['weight'], - '#attributes' => array('class' => strtr($group['group_name'], '_', '-')), - ); + if ($group['settings']['parent'] && arg(0) != 'admin') { + $form[$group['settings']['parent']][$group_name] = array( + '#type' => 'fieldset', + '#title' => t($group['label']), + '#collapsed' => $group['settings']['collapsed'], + '#collapsible' => $group['settings']['collapsible'], + '#description' => $group['description'], + '#weight' => $group['weight'], + '#attributes' => array('class' => strtr($group['group_name'], '_', '-')), + ); + } + else { + $form[$group_name] = array( + '#type' => 'fieldset', + '#title' => t($group['label']), + '#collapsed' => $group['settings']['collapsed'], + '#collapsible' => $group['settings']['collapsible'], + '#description' => $group['description'], + '#weight' => $group['weight'], + '#attributes' => array('class' => strtr($group['group_name'], '_', '-')), + ); + } foreach ($group['fields'] as $field_name => $field) { if (isset($form[$field_name])) { - $form[$group_name][$field_name] = $form[$field_name]; + if ($group['settings']['parent'] && arg(0) != 'admin') { + $form[$group['settings']['parent']][$group_name][$field_name] = $form[$field_name]; + } + else { + $form[$group_name][$field_name] = $form[$field_name]; + } unset($form[$field_name]); } }