wiki.techinc.nl/includes/htmlform/HTMLFloatField.php
addshore 976276338a Split includes/HTMLForm
Change-Id: I6eabfdb064c0e35b69efe9d6142e94df4128b632
2013-12-08 23:13:56 +01:00

45 lines
No EOL
1.1 KiB
PHP

<?php
/**
* A field that will contain a numeric value
*/
class HTMLFloatField extends HTMLTextField {
function getSize() {
return isset( $this->mParams[ 'size' ] ) ? $this->mParams[ 'size' ] : 20;
}
function validate( $value, $alldata ) {
$p = parent::validate( $value, $alldata );
if ( $p !== true ) {
return $p;
}
$value = trim( $value );
# http://dev.w3.org/html5/spec/common-microsyntaxes.html#real-numbers
# with the addition that a leading '+' sign is ok.
if ( ! preg_match( '/^((\+|\-)?\d+(\.\d+)?(E(\+|\-)?\d+)?)?$/i', $value ) ) {
return $this->msg( 'htmlform-float-invalid' )->parseAsBlock();
}
# The "int" part of these message names is rather confusing.
# They make equal sense for all numbers.
if ( isset( $this->mParams[ 'min' ] ) ) {
$min = $this->mParams[ 'min' ];
if ( $min > $value ) {
return $this->msg( 'htmlform-int-toolow', $min )->parseAsBlock();
}
}
if ( isset( $this->mParams[ 'max' ] ) ) {
$max = $this->mParams[ 'max' ];
if ( $max < $value ) {
return $this->msg( 'htmlform-int-toohigh', $max )->parseAsBlock();
}
}
return true;
}
}