You are here

function content_multigroup_group_edit_form in Content Construction Kit (CCK) 6.3

Alter the Fieldgroup edit form to add Multigroup settings.

1 call to content_multigroup_group_edit_form()
content_multigroup_form_alter in modules/content_multigroup/content_multigroup.module
Implementation of hook_form_alter().

File

modules/content_multigroup/content_multigroup.admin.inc, line 404
Implementation of node type administration functions for content multigroup.

Code

function content_multigroup_group_edit_form(&$form, &$form_state) {
  $type_name = $form['#content_type']['type'];
  $group_name = $form['group_name']['#default_value'];
  $content_type = content_types($type_name);
  $groups = fieldgroup_groups($type_name);
  $group = $groups[$group_name];
  if ($group['group_type'] != 'multigroup') {
    return;
  }
  module_load_include('inc', 'content', 'includes/content.admin');
  module_load_include('inc', 'content', 'includes/content.crud');
  $form['group_type'] = array(
    '#type' => 'hidden',
    '#value' => $group['group_type'],
  );
  $form['settings']['multigroup'] = array(
    '#type' => 'fieldset',
    '#title' => t('Multigroup settings'),
    '#collapsed' => FALSE,
    '#collapsible' => TRUE,
  );
  if (isset($group['settings']['multigroup']['subgroup'])) {

    // Preserve subgroup display settings.
    $form['settings']['multigroup']['subgroup'] = array(
      '#type' => 'value',
      '#value' => $group['settings']['multigroup']['subgroup'],
    );
  }
  $form['settings']['multigroup']['multiple-columns'] = array(
    '#type' => 'checkbox',
    '#title' => t('Multiple columns'),
    '#default_value' => isset($group['settings']['multigroup']['multiple-columns']) ? $group['settings']['multigroup']['multiple-columns'] : 0,
    '#description' => t('Enable this option to render each field on a separate column on the node edit form.'),
  );
  $form['settings']['multigroup']['required'] = array(
    '#type' => 'checkbox',
    '#title' => t('Required'),
    '#default_value' => !empty($group['settings']['multigroup']['required']) ? $group['settings']['multigroup']['required'] : 0,
    '#description' => t('Enable this option to require a minimum of one collection of fields in this Multigroup.'),
  );
  $description = t('Number of times to repeat the collection of Multigroup fields.') . ' ';
  $description .= t("'Unlimited' will provide an 'Add more' button so the users can add items as many times as they like.") . ' ';
  $description .= t('All fields in this group will automatically be set to allow this number of values.');
  $group_multiple = isset($group['settings']['multigroup']['multiple']) ? $group['settings']['multigroup']['multiple'] : 1;
  $form['settings']['multigroup']['multiple'] = array(
    '#type' => 'select',
    '#title' => t('Number of repeats'),
    '#options' => content_multigroup_multiple_values(),
    '#default_value' => $group_multiple,
    '#description' => $description,
  );
  $form['settings']['multigroup']['labels'] = array(
    '#type' => 'fieldset',
    '#title' => t('Labels'),
    '#description' => t("Labels for each subgroup of fields. Labels can be hidden or shown in various contexts using the 'Display fields' screen."),
  );
  if ($group_multiple < 2) {
    $group_multiple = 0;
  }
  for ($i = 0; $i < 10; $i++) {
    $form['settings']['multigroup']['labels'][$i] = array(
      '#type' => 'textfield',
      '#title' => t('Subgroup %number label', array(
        '%number' => $i + 1,
      )),
      '#default_value' => isset($group['settings']['multigroup']['labels'][$i]) ? $group['settings']['multigroup']['labels'][$i] : '',
    );
  }
  $form['#validate'][] = 'content_multigroup_group_edit_form_validate';
  $form['#submit'][] = 'content_multigroup_group_edit_form_submit';
}