public static function Number::valueCallback in Price 3.0.x
Same name and namespace in other branches
- 8 src/Element/Number.php \Drupal\price\Element\Number::valueCallback()
- 3.x src/Element/Number.php \Drupal\price\Element\Number::valueCallback()
- 2.0.x src/Element/Number.php \Drupal\price\Element\Number::valueCallback()
- 2.x src/Element/Number.php \Drupal\price\Element\Number::valueCallback()
Determines how user input is mapped to an element's #value property.
Parameters
array $element: An associative array containing the properties of the element.
mixed $input: The incoming input to populate the form element. If this is FALSE, the element's default value should be returned.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Return value
mixed The value to assign to the element.
Overrides FormElement::valueCallback
File
- src/
Element/ Number.php, line 66
Class
- Number
- Provides a number form element with support for language-specific input.
Namespace
Drupal\price\ElementCode
public static function valueCallback(&$element, $input, FormStateInterface $form_state) {
if ($input !== FALSE && $input !== NULL) {
if (!is_scalar($input)) {
$input = '';
}
return trim($input);
}
elseif (!empty($element['#default_value'])) {
// Convert the stored number to the local format. For example, "9.99"
// becomes "9,99" in many locales. This also strips any extra zeroes.
$number_formatter = \Drupal::service('price.number_formatter');
$number = (string) $element['#default_value'];
$number = $number_formatter
->format($number, [
'use_grouping' => FALSE,
'minimum_fraction_digits' => $element['#min_fraction_digits'],
'maximum_fraction_digits' => $element['#max_fraction_digits'],
]);
return $number;
}
return NULL;
}