function double_field_field_formatter_settings_form in Double Field 7.2
Same name and namespace in other branches
- 7 double_field.module \double_field_field_formatter_settings_form()
Implements hook_field_formatter_settings_form().
File
- ./
double_field.module, line 828 - Defines "Double field" field type.
Code
function double_field_field_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state) {
$settings = $instance['display'][$view_mode]['settings'];
$element = array(
'#tree' => TRUE,
);
$style_settings = array(
'#type' => 'select',
'#title' => t('Style'),
'#options' => array(
'inline' => t('Inline'),
'block' => t('Block'),
'link' => t('Link'),
'simple' => t('Simple'),
),
'#default_value' => isset($settings['style']) ? $settings['style'] : 'inline',
'#states' => array(
'invisible' => array(
":input[name='fields[{$field["field_name"]}][settings_edit_form][settings][list_type]']" => array(
'value' => 'dl',
),
),
),
);
switch ($instance['display'][$view_mode]['type']) {
case 'double_field_fieldset':
$element['collapsible'] = array(
'#type' => 'checkbox',
'#title' => t('Collapsible'),
'#default_value' => $settings['collapsible'],
);
$element['collapsed'] = array(
'#type' => 'checkbox',
'#title' => t('Collapsed'),
'#default_value' => $settings['collapsed'],
);
break;
case 'double_field_unformatted_list':
$element['style'] = $style_settings;
break;
case 'double_field_html_list':
$element['list_type'] = array(
'#type' => 'radios',
'#title' => t('List type'),
'#options' => array(
'ul' => t('Unordered list'),
'ol' => t('Ordered list'),
'dl' => t('Definition list'),
),
'#default_value' => $settings['list_type'],
);
$element['style'] = $style_settings;
break;
case 'double_field_table':
$element['table'] = array(
'#title' => t('Table'),
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$element['table']['number_column'] = array(
'#type' => 'checkbox',
'#title' => t('Enable row number column'),
'#default_value' => $settings['table']['number_column'],
'#attributes' => array(
'id' => 'number_column',
),
);
$element['table']['number_column_label'] = array(
'#type' => 'textfield',
'#title' => t('Number column label'),
'#size' => 30,
'#default_value' => $settings['table']['number_column_label'],
'#states' => array(
'visible' => array(
'#number_column' => array(
'checked' => TRUE,
),
),
),
);
foreach (array(
'first',
'second',
) as $subfield) {
$element['table'][$subfield]['column_label'] = array(
'#type' => 'textfield',
'#title' => $subfield == 'first' ? t('First column label') : t('Second column label'),
'#size' => 30,
'#default_value' => $settings['table'][$subfield]['column_label'],
'#tree' => TRUE,
);
}
break;
}
// Get a list of formats.
$options['_none'] = t('- None -');
foreach (filter_formats() as $format) {
$options[$format->format] = $format->name;
}
// Common settings.
foreach (array(
'first',
'second',
) as $subfield) {
$element[$subfield] = array(
'#title' => $subfield == 'first' ? t('First subfield') : t('Second subfield'),
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$element[$subfield]['hidden'] = array(
'#type' => 'checkbox',
'#title' => t('Hidden'),
'#default_value' => $settings[$subfield]['hidden'],
);
$element[$subfield]['format'] = array(
'#type' => 'select',
'#title' => t('Text format'),
'#options' => $options,
'#default_value' => $settings[$subfield]['format'],
'#description' => t('Warning: This setting may have security implications.'),
'#element_validate' => array(
'double_field_format_validate',
),
);
$element[$subfield]['prefix'] = array(
'#type' => 'textfield',
'#title' => t('Prefix'),
'#size' => 30,
'#default_value' => $settings[$subfield]['prefix'],
);
$element[$subfield]['suffix'] = array(
'#type' => 'textfield',
'#title' => t('Suffix'),
'#size' => 30,
'#default_value' => $settings[$subfield]['suffix'],
);
}
return $element;
}