danielebarchiesi@0: FALSE, 'bool' => TRUE); danielebarchiesi@0: $options['precision'] = array('default' => 0); danielebarchiesi@0: $options['decimal'] = array('default' => '.', 'translatable' => TRUE); danielebarchiesi@0: $options['separator'] = array('default' => ',', 'translatable' => TRUE); danielebarchiesi@0: $options['format_plural'] = array('default' => FALSE, 'bool' => TRUE); danielebarchiesi@0: $options['format_plural_singular'] = array('default' => '1'); danielebarchiesi@0: $options['format_plural_plural'] = array('default' => '@count'); danielebarchiesi@0: $options['prefix'] = array('default' => '', 'translatable' => TRUE); danielebarchiesi@0: $options['suffix'] = array('default' => '', 'translatable' => TRUE); danielebarchiesi@0: danielebarchiesi@0: return $options; danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: function options_form(&$form, &$form_state) { danielebarchiesi@0: if (!empty($this->definition['float'])) { danielebarchiesi@0: $form['set_precision'] = array( danielebarchiesi@0: '#type' => 'checkbox', danielebarchiesi@0: '#title' => t('Round'), danielebarchiesi@0: '#description' => t('If checked, the number will be rounded.'), danielebarchiesi@0: '#default_value' => $this->options['set_precision'], danielebarchiesi@0: ); danielebarchiesi@0: $form['precision'] = array( danielebarchiesi@0: '#type' => 'textfield', danielebarchiesi@0: '#title' => t('Precision'), danielebarchiesi@0: '#default_value' => $this->options['precision'], danielebarchiesi@0: '#description' => t('Specify how many digits to print after the decimal point.'), danielebarchiesi@0: '#dependency' => array('edit-options-set-precision' => array(TRUE)), danielebarchiesi@0: '#size' => 2, danielebarchiesi@0: ); danielebarchiesi@0: $form['decimal'] = array( danielebarchiesi@0: '#type' => 'textfield', danielebarchiesi@0: '#title' => t('Decimal point'), danielebarchiesi@0: '#default_value' => $this->options['decimal'], danielebarchiesi@0: '#description' => t('What single character to use as a decimal point.'), danielebarchiesi@0: '#size' => 2, danielebarchiesi@0: ); danielebarchiesi@0: } danielebarchiesi@0: $form['separator'] = array( danielebarchiesi@0: '#type' => 'select', danielebarchiesi@0: '#title' => t('Thousands marker'), danielebarchiesi@0: '#options' => array( danielebarchiesi@0: '' => t('- None -'), danielebarchiesi@0: ',' => t('Comma'), danielebarchiesi@0: ' ' => t('Space'), danielebarchiesi@0: '.' => t('Decimal'), danielebarchiesi@0: '\'' => t('Apostrophe'), danielebarchiesi@0: ), danielebarchiesi@0: '#default_value' => $this->options['separator'], danielebarchiesi@0: '#description' => t('What single character to use as the thousands separator.'), danielebarchiesi@0: '#size' => 2, danielebarchiesi@0: ); danielebarchiesi@0: $form['format_plural'] = array( danielebarchiesi@0: '#type' => 'checkbox', danielebarchiesi@0: '#title' => t('Format plural'), danielebarchiesi@0: '#description' => t('If checked, special handling will be used for plurality.'), danielebarchiesi@0: '#default_value' => $this->options['format_plural'], danielebarchiesi@0: ); danielebarchiesi@0: $form['format_plural_singular'] = array( danielebarchiesi@0: '#type' => 'textfield', danielebarchiesi@0: '#title' => t('Singular form'), danielebarchiesi@0: '#default_value' => $this->options['format_plural_singular'], danielebarchiesi@0: '#description' => t('Text to use for the singular form.'), danielebarchiesi@0: '#dependency' => array('edit-options-format-plural' => array(TRUE)), danielebarchiesi@0: ); danielebarchiesi@0: $form['format_plural_plural'] = array( danielebarchiesi@0: '#type' => 'textfield', danielebarchiesi@0: '#title' => t('Plural form'), danielebarchiesi@0: '#default_value' => $this->options['format_plural_plural'], danielebarchiesi@0: '#description' => t('Text to use for the plural form, @count will be replaced with the value.'), danielebarchiesi@0: '#dependency' => array('edit-options-format-plural' => array(TRUE)), danielebarchiesi@0: ); danielebarchiesi@0: $form['prefix'] = array( danielebarchiesi@0: '#type' => 'textfield', danielebarchiesi@0: '#title' => t('Prefix'), danielebarchiesi@0: '#default_value' => $this->options['prefix'], danielebarchiesi@0: '#description' => t('Text to put before the number, such as currency symbol.'), danielebarchiesi@0: ); danielebarchiesi@0: $form['suffix'] = array( danielebarchiesi@0: '#type' => 'textfield', danielebarchiesi@0: '#title' => t('Suffix'), danielebarchiesi@0: '#default_value' => $this->options['suffix'], danielebarchiesi@0: '#description' => t('Text to put after the number, such as currency symbol.'), danielebarchiesi@0: ); danielebarchiesi@0: danielebarchiesi@0: parent::options_form($form, $form_state); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: function render($values) { danielebarchiesi@0: $value = $this->get_value($values); danielebarchiesi@0: if (!empty($this->options['set_precision'])) { danielebarchiesi@0: $value = number_format($value, $this->options['precision'], $this->options['decimal'], $this->options['separator']); danielebarchiesi@0: } danielebarchiesi@0: else { danielebarchiesi@0: $remainder = abs($value) - intval(abs($value)); danielebarchiesi@0: $value = $value > 0 ? floor($value) : ceil($value); danielebarchiesi@0: $value = number_format($value, 0, '', $this->options['separator']); danielebarchiesi@0: if ($remainder) { danielebarchiesi@0: // The substr may not be locale safe. danielebarchiesi@0: $value .= $this->options['decimal'] . substr($remainder, 2); danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: // Check to see if hiding should happen before adding prefix and suffix. danielebarchiesi@0: if ($this->options['hide_empty'] && empty($value) && ($value !== 0 || $this->options['empty_zero'])) { danielebarchiesi@0: return ''; danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: // Should we format as a plural. danielebarchiesi@0: if (!empty($this->options['format_plural'])) { danielebarchiesi@0: $value = format_plural($value, $this->options['format_plural_singular'], $this->options['format_plural_plural']); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: return $this->sanitize_value($this->options['prefix'], 'xss') danielebarchiesi@0: . $this->sanitize_value($value) danielebarchiesi@0: . $this->sanitize_value($this->options['suffix'], 'xss'); danielebarchiesi@0: } danielebarchiesi@0: }