function content_multigroup_display_overview_form in Content Construction Kit (CCK) 6.3
Alter the "Display fields" form.
Add an additional selector for setting multigroup field display format.
1 call to content_multigroup_display_overview_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 294 - Implementation of node type administration functions for content multigroup.
Code
function content_multigroup_display_overview_form(&$form, &$form_state) {
$type_name = $form['#type_name'];
$contexts_selector = $form['#contexts'];
// Gather type information.
$content_type = content_types($type_name);
// The content module stops building the form if the type has no fields.
if (empty($content_type['fields'])) {
return;
}
$groups = array();
$groups = fieldgroup_groups($type_name);
$contexts = content_build_modes($contexts_selector);
$all_contexts = content_build_modes();
// Multigroups, extra values.
$label_options = array(
'above' => t('Above'),
'hidden' => t('<Hidden>'),
);
$options = array(
'simple' => t('Simple'),
'fieldset' => t('Fieldset'),
'fieldset_collapsible' => t('Fieldset - collapsible'),
'fieldset_collapsed' => t('Fieldset - collapsed'),
'hr' => t('Horizontal line'),
'table-single' => t('Table - Single column'),
'table-multiple' => t('Table - Multiple columns'),
'ul' => t('Unordered List'),
);
foreach ($groups as $group_name => $group) {
if ($group['group_type'] != 'multigroup') {
continue;
}
$subgroup_settings = isset($group['settings']['multigroup']['subgroup']) ? $group['settings']['multigroup']['subgroup'] : array();
$subgroup_name = $group_name . '_subgroup';
$form['#fields'] = array_merge(array(
$subgroup_name,
), $form['#fields']);
$form[$subgroup_name] = array(
'human_name' => array(
'#value' => t('[Subgroup format]'),
),
'weight' => array(
'#type' => 'value',
'#value' => -20,
),
'parent' => array(
'#type' => 'value',
'#value' => $group_name,
),
'subgroup' => array(
'#type' => 'value',
'#value' => 1,
),
);
if ($contexts_selector == 'basic') {
$form[$subgroup_name]['label'] = array(
'#type' => 'select',
'#options' => $label_options,
'#default_value' => isset($subgroup_settings['label']) ? $subgroup_settings['label'] : 'above',
);
}
// Allow a format selection for contexts on the current tab.
// Store other contexts as hidden values so they don't get lost.
foreach ($all_contexts as $key => $title) {
if (array_key_exists($key, $contexts)) {
$form[$subgroup_name][$key]['format'] = array(
'#type' => 'select',
'#options' => $options,
'#default_value' => isset($subgroup_settings[$key]['format']) ? $subgroup_settings[$key]['format'] : 'fieldset',
);
$form[$subgroup_name][$key]['exclude'] = array(
'#type' => 'value',
'#value' => 0,
);
}
else {
$form[$subgroup_name][$key]['format'] = array(
'#type' => 'hidden',
'#value' => isset($subgroup_settings[$key]['format']) ? $subgroup_settings[$key]['format'] : 'fieldset',
);
$form[$subgroup_name][$key]['exclude'] = array(
'#type' => 'value',
'#value' => 0,
);
}
}
}
$form['#submit'] = array_merge(array(
'content_multigroup_display_overview_form_submit',
), $form['#submit']);
}