MediaWiki  master
HTMLFloatField.php
Go to the documentation of this file.
1 <?php
2 
7  public function getSize() {
8  return $this->mParams['size'] ?? 20;
9  }
10 
11  public function validate( $value, $alldata ) {
12  $p = parent::validate( $value, $alldata );
13 
14  if ( $p !== true ) {
15  return $p;
16  }
17 
18  $value = trim( $value );
19 
20  # https://www.w3.org/TR/html5/infrastructure.html#floating-point-numbers
21  # with the addition that a leading '+' sign is ok.
22  if ( !preg_match( '/^((\+|\-)?\d+(\.\d+)?(E(\+|\-)?\d+)?)?$/i', $value ) ) {
23  return $this->msg( 'htmlform-float-invalid' );
24  }
25 
26  # The "int" part of these message names is rather confusing.
27  # They make equal sense for all numbers.
28  if ( isset( $this->mParams['min'] ) ) {
29  $min = $this->mParams['min'];
30 
31  if ( $min > $value ) {
32  return $this->msg( 'htmlform-int-toolow', $min );
33  }
34  }
35 
36  if ( isset( $this->mParams['max'] ) ) {
37  $max = $this->mParams['max'];
38 
39  if ( $max < $value ) {
40  return $this->msg( 'htmlform-int-toohigh', $max );
41  }
42  }
43 
44  return true;
45  }
46 
47  protected function getInputWidget( $params ) {
48  return new OOUI\NumberInputWidget( $params );
49  }
50 }
validate( $value, $alldata)
A field that will contain a numeric value.
getInputWidget( $params)
msg( $key,... $params)
Get a translated interface message.
<input> field.