diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-05-01 15:12:12 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-05-01 15:12:12 -0400 |
commit | c9aa36da061816dee256a979c2ff8d2ee41824d9 (patch) | |
tree | 29f7002b80ee984b488bd047dbbd80b36bf892e9 /includes/htmlform/HTMLIntField.php | |
parent | b4274e0e33eafb5e9ead9d949ebf031a9fb8363b (diff) | |
parent | d1ba966140d7a60cd5ae4e8667ceb27c1a138592 (diff) |
Merge branch 'archwiki'
# Conflicts:
# skins/ArchLinux.php
# skins/ArchLinux/archlogo.gif
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; + } +} |