function double_field_field_settings_form in Double Field 7.2
Same name and namespace in other branches
- 7 double_field.module \double_field_field_settings_form()
Implements hook_field_settings_form().
File
- ./
double_field.module, line 100 - Defines "Double field" field type.
Code
function double_field_field_settings_form($field, $instance, $has_data) {
$settings = $field['settings'];
$type_options = array(
'varchar' => t('Varchar'),
'text' => t('Text'),
'int' => t('Integer'),
'float' => t('Float'),
'decimal' => t('Decimal'),
);
$size_options = array(
'tiny' => t('Tiny'),
'small' => t('Small'),
'medium' => t('Medium'),
'normal' => t('Normal'),
'big' => t('Big'),
);
foreach (array(
'first',
'second',
) as $subfield) {
$form[$subfield] = array(
'#type' => 'fieldset',
'#title' => $subfield == 'first' ? t('First subfield') : t('Second subfield'),
'#collapsible' => TRUE,
);
$form[$subfield]['type'] = array(
'#type' => 'select',
'#title' => t('Field type'),
'#default_value' => $settings[$subfield]['type'],
'#required' => TRUE,
'#options' => $type_options,
'#disabled' => $has_data,
);
$form[$subfield]['maxlength'] = array(
'#type' => 'textfield',
'#title' => t('Maximum length'),
'#default_value' => $settings[$subfield]['maxlength'],
'#required' => TRUE,
'#description' => t('The maximum length of the subfield in characters.'),
'#element_validate' => array(
'element_validate_integer_positive',
),
'#disabled' => $has_data,
'#size' => 10,
'#states' => array(
'visible' => array(
":input[name='field[settings][{$subfield}][type]']" => array(
'value' => 'varchar',
),
),
),
);
$form[$subfield]['size'] = array(
'#type' => 'select',
'#title' => t('Size'),
'#default_value' => $settings[$subfield]['size'],
'#required' => TRUE,
'#options' => $size_options,
'#disabled' => $has_data,
'#states' => array(
'visible' => array(
":input[name='field[settings][{$subfield}][type]']" => array(
array(
'value' => 'int',
),
array(
'value' => 'float',
),
),
),
),
);
$form[$subfield]['precision'] = array(
'#type' => 'select',
'#title' => t('Precision'),
'#options' => drupal_map_assoc(range(10, 32)),
'#default_value' => $settings[$subfield]['precision'],
'#description' => t('The total number of digits to store in the database, including those to the right of the decimal.'),
'#disabled' => $has_data,
'#states' => array(
'visible' => array(
":input[name='field[settings][{$subfield}][type]']" => array(
'value' => 'decimal',
),
),
),
);
$form[$subfield]['scale'] = array(
'#type' => 'select',
'#title' => t('Scale'),
'#options' => drupal_map_assoc(range(0, 10)),
'#default_value' => $settings[$subfield]['scale'],
'#description' => t('The number of digits to the right of the decimal.'),
'#disabled' => $has_data,
'#states' => array(
'visible' => array(
":input[name='field[settings][{$subfield}][type]']" => array(
'value' => 'decimal',
),
),
),
);
}
return $form;
}