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