diff options
author | Pierre Schmitz <pierre@archlinux.de> | 2014-12-27 15:41:37 +0100 |
---|---|---|
committer | Pierre Schmitz <pierre@archlinux.de> | 2014-12-31 11:43:28 +0100 |
commit | c1f9b1f7b1b77776192048005dcc66dcf3df2bfb (patch) | |
tree | 2b38796e738dd74cb42ecd9bfd151803108386bc /includes/htmlform/HTMLIntField.php | |
parent | b88ab0086858470dd1f644e64cb4e4f62bb2be9b (diff) |
Update to MediaWiki 1.24.1
Diffstat (limited to 'includes/htmlform/HTMLIntField.php')
-rw-r--r-- | includes/htmlform/HTMLIntField.php | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/includes/htmlform/HTMLIntField.php b/includes/htmlform/HTMLIntField.php new file mode 100644 index 00000000..28876e2c --- /dev/null +++ b/includes/htmlform/HTMLIntField.php @@ -0,0 +1,27 @@ +<?php + +/** + * A field that must contain a number + */ +class HTMLIntField extends HTMLFloatField { + function validate( $value, $alldata ) { + $p = parent::validate( $value, $alldata ); + + if ( $p !== true ) { + return $p; + } + + # http://dev.w3.org/html5/spec/common-microsyntaxes.html#signed-integers + # with the addition that a leading '+' sign is ok. Note that leading zeros + # are fine, and will be left in the input, which is useful for things like + # phone numbers when you know that they are integers (the HTML5 type=tel + # input does not require its value to be numeric). If you want a tidier + # value to, eg, save in the DB, clean it up with intval(). + if ( !preg_match( '/^((\+|\-)?\d+)?$/', trim( $value ) ) + ) { + return $this->msg( 'htmlform-int-invalid' )->parseAsBlock(); + } + + return true; + } +} |