function composed_field_field_widget_settings_form in Composed Field 7
Implements hook_field_widget_settings_form().
File
- ./
composed_field.module, line 111 - Defines composed field type.
Code
function composed_field_field_widget_settings_form($field, $instance) {
$widget_form_state_values = $instance['widget']['settings'];
$number_of_subfields_title = t('Number of subfields');
// Assume there is no value set for number_of_subfields as yet.
$number_of_fields_not_set_message = t('You must enter a value into !number_of_subfields', array(
'!number_of_subfields' => $number_of_subfields_title,
));
if (isset($widget_form_state_values['number_of_subfields'])) {
// The field is being edited rather than created.
$number_of_subfields = $widget_form_state_values['number_of_subfields'];
}
else {
$widget_form_state_values['number_of_subfields'] = '';
$number_of_subfields = 1;
}
$form['inline'] = array(
'#type' => 'checkbox',
'#title' => t('Display as inline element'),
'#default_value' => empty($widget_form_state_values['inline']) ? FALSE : $widget_form_state_values['inline'],
);
// This element determines how many components our field will have.
$form['number_of_subfields'] = array(
'#type' => 'textfield',
'#title' => $number_of_subfields_title,
'#description' => t('Enter a numeric value and hit the tab key after that.') . '<br />' . t('This value determines how many subfields this field will have.'),
'#default_value' => $widget_form_state_values['number_of_subfields'],
'#maxlength' => 2,
'#size' => 2,
'#element_validate' => array(
'element_validate_integer_positive',
),
'#required' => TRUE,
'#ajax' => array(
'callback' => '_composed_field_vertical_tabs_ajax_callback',
),
);
$form['composed_field'] = array(
'#type' => 'vertical_tabs',
'#prefix' => "<div id='composed_field_tabs_ajax_wrapper'>",
'#suffix' => '</div>',
);
// Build the form elements in each tab.
$form['#composed_field'] = array(
'vertical_tab_settings' => array(
'subfield_start_from' => 1,
'number_of_subfields' => $number_of_subfields,
'number_of_fields_not_set_message' => $number_of_fields_not_set_message,
),
);
_composed_field_build_form_controls_in_vertical_tabs($form, $widget_form_state_values);
return $form;
}