You are here

function content_multigroup_form_alter in Content Construction Kit (CCK) 6.3

Implementation of hook_form_alter().

File

modules/content_multigroup/content_multigroup.module, line 126
Create complex, repeating groups of CCK fields that work in unison.

Code

function content_multigroup_form_alter(&$form, $form_state, $form_id) {
  if ($form_id == 'content_field_edit_form' && isset($form['widget'])) {

    // If this is a field edit form and the field is in a Multigroup,
    // override the multiple value settings.
    $content_type = content_types($form['type_name']['#value']);
    $groups = fieldgroup_groups($content_type['type']);
    $group_name = _fieldgroup_field_get_group($content_type['type'], $form['field_name']['#value']);
    $group = isset($groups[$group_name]) ? $groups[$group_name] : array();
    if (!empty($group) && $group['group_type'] == 'multigroup') {
      $form['field']['multiple']['#value'] = $group['settings']['multigroup']['multiple'];
      $form['field']['multiple']['#access'] = FALSE;
    }
  }
  elseif ($form_id == 'content_field_edit_form' && isset($form_state['change_basic'])) {

    // This is the basic field settings form. It should not be possible to
    // choose a widget type that is not compatible with multigroups.
    module_load_include('inc', 'content_multigroup', 'content_multigroup.admin');
    content_multigroup_field_basic_form($form, $form_state);
  }
  elseif ($form_id == 'content_field_overview_form') {

    // Validation for creating/moving fields and groups on the
    // Manage Fields screen.
    module_load_include('inc', 'content_multigroup', 'content_multigroup.admin');
    $form['#validate'][] = 'content_multigroup_field_overview_form_validate';
  }
  elseif ($form_id == 'content_display_overview_form' && !empty($form['#groups'])) {

    // Add an additional selector for setting multigroup field display
    // format to the Display Fields screen.
    module_load_include('inc', 'content_multigroup', 'content_multigroup.admin');
    content_multigroup_display_overview_form($form, $form_state);
  }
  elseif ($form_id == 'fieldgroup_group_edit_form') {

    // Alter the Fieldgroup edit form to add Multigroup settings.
    module_load_include('inc', 'content_multigroup', 'content_multigroup.admin');
    content_multigroup_group_edit_form($form, $form_state);
  }
}