wiki.techinc.nl/includes/htmlform/HTMLFloatField.php
addshore 8fa2314b2e Formatting fixes in includes/htmlform/*
Change-Id: Iee9e4f3fcf8491022ffe97c74312871f97f8ce9c
2013-12-09 14:23:05 +01:00

46 lines
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;
}
}