| 1 field_group.api.php | hook_field_group_format_settings($group) |
Implements hook_field_group_format_settings().
Defines configuration widget for the settings on a field group formatter. Each formatter can have different elements and storage.
Parameters
object $group: The Group definition.
Return value
array: The form element for the format settings.
Related topics
File
- core/
modules/ field_group/ field_group.api.php, line 125 - Hooks provided by the Field Group module.
Code
function hook_field_group_format_settings($group) {
// Add a wrapper for extra settings to use by others.
$form = array(
'instance_settings' => array(
'#tree' => TRUE,
'#weight' => 2,
),
);
$field_group_types = field_group_formatter_info();
$mode = $group->mode == 'form' ? 'form' : 'display';
$formatter = $field_group_types[$mode][$group->format_type];
// Add the required display type selector.
if (isset($formatter['format_types'])) {
$form['formatter'] = array(
'#title' => t('Display type'),
'#type' => 'select',
'#options' => backdrop_map_assoc($formatter['format_types']),
'#default_value' => isset($group->format_settings['formatter']) ? $group->format_settings['formatter'] : $formatter['default_formatter'],
'#weight' => 1,
);
}
if ($mode == 'form') {
$form['instance_settings']['required_fields'] = array(
'#type' => 'checkbox',
'#title' => t('Mark group for required fields.'),
'#default_value' => isset($group->format_settings['instance_settings']['required_fields']) ? $group->format_settings['instance_settings']['required_fields'] : (isset($formatter['instance_settings']['required_fields']) ? $formatter['instance_settings']['required_fields'] : ''),
'#weight' => 2,
);
}
$form['instance_settings']['classes'] = array(
'#title' => t('Extra CSS classes'),
'#type' => 'textfield',
'#default_value' => isset($group->format_settings['instance_settings']['classes']) ? $group->format_settings['instance_settings']['classes'] : (isset($formatter['instance_settings']['classes']) ? $formatter['instance_settings']['classes'] : ''),
'#weight' => 3,
'#element_validate' => array('field_group_validate_css_class'),
);
$form['instance_settings']['description'] = array(
'#title' => t('Description'),
'#type' => 'textarea',
'#default_value' => isset($group->format_settings['instance_settings']['description']) ? $group->format_settings['instance_settings']['description'] : (isset($formatter['instance_settings']['description']) ? $formatter['instance_settings']['description'] : ''),
'#weight' => 0,
);
// Add optional instance_settings.
switch ($group->format_type) {
case 'div':
$form['instance_settings']['effect'] = array(
'#title' => t('Effect'),
'#type' => 'select',
'#options' => array('none' => t('None'), 'blind' => t('Blind')),
'#default_value' => isset($group->format_settings['instance_settings']['effect']) ? $group->format_settings['instance_settings']['effect'] : $formatter['instance_settings']['effect'],
'#weight' => 2,
);
$form['instance_settings']['speed'] = array(
'#title' => t('Speed'),
'#type' => 'select',
'#options' => array(
'none' => t('None'), 'slow' => t('Slow'), 'fast' => t('Fast'),
),
'#default_value' => isset($group->format_settings['instance_settings']['speed']) ? $group->format_settings['instance_settings']['speed'] : $formatter['instance_settings']['speed'],
'#weight' => 3,
);
break;
case 'fieldset':
$form['instance_settings']['classes'] = array(
'#title' => t('Extra CSS classes'),
'#type' => 'textfield',
'#default_value' => isset($group->format_settings['instance_settings']['classes']) ? $group->format_settings['instance_settings']['classes'] : $formatter['instance_settings']['classes'],
'#weight' => 3,
'#element_validate' => array('field_group_validate_css_class'),
);
break;
case 'tabs':
unset($form['instance_settings']['description']);
if (isset($form['instance_settings']['required_fields'])) {
unset($form['instance_settings']['required_fields']);
}
break;
case 'tab':
default:
}
return $form;
}