summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2010-07-26 02:59:13 +0000
committerDries Buytaert <dries@buytaert.net>2010-07-26 02:59:13 +0000
commit239c66915fc968f0a188d4948452f2092f7ab4b1 (patch)
tree0adb15715832daca31bf5fc74b006db28c968b62 /modules
parent6f5c006347f11ac0855f61b5d2e46694193a7ee5 (diff)
downloadbrdo-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.module67
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) {