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/FormOptions.php | |
parent | b88ab0086858470dd1f644e64cb4e4f62bb2be9b (diff) |
Update to MediaWiki 1.24.1
Diffstat (limited to 'includes/FormOptions.php')
-rw-r--r-- | includes/FormOptions.php | 58 |
1 files changed, 46 insertions, 12 deletions
diff --git a/includes/FormOptions.php b/includes/FormOptions.php index 54822e32..c91c3367 100644 --- a/includes/FormOptions.php +++ b/includes/FormOptions.php @@ -4,6 +4,7 @@ * * Copyright © 2008, Niklas Laxström * Copyright © 2011, Antoine Musso + * Copyright © 2013, Bartosz Dziewoński * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -42,6 +43,9 @@ class FormOptions implements ArrayAccess { const STRING = 0; /** Integer type, maps guessType() to WebRequest::getInt() */ const INT = 1; + /** Float type, maps guessType() to WebRequest::getFloat() + * @since 1.23 */ + const FLOAT = 4; /** Boolean type, maps guessType() to WebRequest::getBool() */ const BOOL = 2; /** Integer type or null, maps to WebRequest::getIntOrNull() @@ -112,6 +116,8 @@ class FormOptions implements ArrayAccess { return self::BOOL; } elseif ( is_int( $data ) ) { return self::INT; + } elseif ( is_float( $data ) ) { + return self::FLOAT; } elseif ( is_string( $data ) ) { return self::STRING; } else { @@ -234,19 +240,29 @@ class FormOptions implements ArrayAccess { } /** - * Validate and set an option integer value - * The value will be altered to fit in the range. + * @see validateBounds() + */ + public function validateIntBounds( $name, $min, $max ) { + $this->validateBounds( $name, $min, $max ); + } + + /** + * Constrain a numeric value for a given option to a given range. The value will be altered to fit + * in the range. * - * @param string $name option name - * @param int $min minimum value - * @param int $max maximum value + * @since 1.23 + * + * @param string $name Option name + * @param int|float $min Minimum value + * @param int|float $max Maximum value * @throws MWException If option is not of type INT */ - public function validateIntBounds( $name, $min, $max ) { + public function validateBounds( $name, $min, $max ) { $this->validateName( $name, true ); + $type = $this->options[$name]['type']; - if ( $this->options[$name]['type'] !== self::INT ) { - throw new MWException( "Option $name is not of type int" ); + if ( $type !== self::INT && $type !== self::FLOAT ) { + throw new MWException( "Option $name is not of type INT or FLOAT" ); } $value = $this->getValueReal( $this->options[$name] ); @@ -333,6 +349,9 @@ class FormOptions implements ArrayAccess { case self::INT: $value = $r->getInt( $name, $default ); break; + case self::FLOAT: + $value = $r->getFloat( $name, $default ); + break; case self::STRING: $value = $r->getText( $name, $default ); break; @@ -354,22 +373,37 @@ class FormOptions implements ArrayAccess { * @see http://php.net/manual/en/class.arrayaccess.php */ /* @{ */ - /** Whether the option exists. */ + /** + * Whether the option exists. + * @param string $name + * @return bool + */ public function offsetExists( $name ) { return isset( $this->options[$name] ); } - /** Retrieve an option value. */ + /** + * Retrieve an option value. + * @param string $name + * @return mixed + */ public function offsetGet( $name ) { return $this->getValue( $name ); } - /** Set an option to given value. */ + /** + * Set an option to given value. + * @param string $name + * @param mixed $value + */ public function offsetSet( $name, $value ) { $this->setValue( $name, $value ); } - /** Delete the option. */ + /** + * Delete the option. + * @param string $name + */ public function offsetUnset( $name ) { $this->delete( $name ); } |