diff options
author | Dries Buytaert <dries@buytaert.net> | 2010-07-26 02:59:13 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2010-07-26 02:59:13 +0000 |
commit | 239c66915fc968f0a188d4948452f2092f7ab4b1 (patch) | |
tree | 0adb15715832daca31bf5fc74b006db28c968b62 /modules | |
parent | 6f5c006347f11ac0855f61b5d2e46694193a7ee5 (diff) | |
download | brdo-239c66915fc968f0a188d4948452f2092f7ab4b1.tar.gz brdo-239c66915fc968f0a188d4948452f2092f7ab4b1.tar.bz2 |
- Patch #857314 by andypost: add form for number formatter settings.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/field/modules/number/number.module | 67 |
1 files changed, 62 insertions, 5 deletions
diff --git a/modules/field/modules/number/number.module b/modules/field/modules/number/number.module index 276e369b8..d9386eda7 100644 --- a/modules/field/modules/number/number.module +++ b/modules/field/modules/number/number.module @@ -118,11 +118,7 @@ function number_field_settings_form($field, $instance, $has_data) { $form['decimal_separator'] = array( '#type' => 'select', '#title' => t('Decimal marker'), - '#options' => array( - '.' => 'decimal point', - ',' => 'comma', - ' ' => 'space', - ), + '#options' => array('.' => t('Decimal point'), ',' => t('Comma')), '#default_value' => $settings['decimal_separator'], '#description' => t('The character users will input to mark the decimal point in forms.'), ); @@ -253,6 +249,67 @@ function number_field_formatter_info() { } /** + * Implements hook_field_formatter_settings_form(). + */ +function number_field_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state) { + $display = $instance['display'][$view_mode]; + $settings = $display['settings']; + + $options = array( + '' => t('<none>'), + '.' => t('Decimal point'), + ',' => t('Comma'), + ' ' => t('Space'), + ); + $form['thousand_separator'] = array( + '#type' => 'select', + '#title' => t('Thousand marker'), + '#options' => $options, + '#default_value' => $settings['thousand_separator'], + ); + + if ($display['type'] == 'number_decimal' || $display['type'] == 'number_float') { + $form['decimal_separator'] = array( + '#type' => 'select', + '#title' => t('Decimal marker'), + '#options' => array('.' => t('Decimal point'), ',' => t('Comma')), + '#default_value' => $settings['decimal_separator'], + ); + $form['scale'] = array( + '#type' => 'select', + '#title' => t('Scale'), + '#options' => drupal_map_assoc(range(0, 10)), + '#default_value' => $settings['scale'], + '#description' => t('The number of digits to the right of the decimal.'), + ); + } + + $form['prefix_suffix'] = array( + '#type' => 'checkbox', + '#title' => t('Display prefix and suffix.'), + '#default_value' => $settings['prefix_suffix'], + ); + + return $form; +} + +/** + * Implements hook_field_formatter_settings_summary(). + */ +function number_field_formatter_settings_summary($field, $instance, $view_mode) { + $display = $instance['display'][$view_mode]; + $settings = $display['settings']; + + $summary = array(); + $summary[] = number_format(1234.1234567890, $settings['scale'], $settings['decimal_separator'], $settings['thousand_separator']); + if ($settings['prefix_suffix']) { + $summary[] = t('Display with prefix and suffix.'); + } + + return implode('<br />', $summary); +} + +/** * Implements hook_field_formatter_view(). */ function number_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) { |