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';
}